优选算法_翻转链表_头插法_C++

一.题目解析

算法解析:

结合画图和头插代码就很好理解了

二.代码编写:

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head==nullptr||head->next==nullptr)return head;

        ListNode*newhead=new ListNode(0);
        ListNode*cur=head;
        while(cur!=nullptr)
        {
            ListNode*next=cur->next;//注意顺序和位置
            cur->next=newhead->next;
            newhead->next=cur;
            cur=next;
        }
        cur=newhead->next;
        delete newhead;
        return cur;
    }
};
相关推荐
无忧.芙桃2 小时前
图的精髓:邻接矩阵与遍历全解析
c++·算法·面试·深度优先·广度优先
jimy12 小时前
标准的动态类型定义与“多态”无关,非多态对象同样会出现动态类型不同于静态类型的情形
开发语言·c++
冬、不眠的夜2 小时前
Nuitka 将 python 程序编译成 exe 指南
开发语言·python
Nil2082 小时前
leetcode 1143最长公共子序列
算法·leetcode·职场和发展
CVer儿2 小时前
起源1引擎相关知识点2--World Brush+func_detail
开发语言
脚踏实地,坚持不懈!2 小时前
Linux 内存回收机制:水位线、kswapd 与 Direct Reclaim
linux·jvm·算法
MOONICK2 小时前
COM 组件技术(三)
c++·windows
_wxd6662 小时前
二叉搜索树(BST)万字详解:概念、操作、性能分析与 C++ 实现
数据结构·c++·二叉搜索树
Logic1012 小时前
C语言/数据结构动态规划题解:字符串变回文的最少操作次数——最长回文子序列(LPS)
c语言·数据结构·算法·动态规划·时间复杂度·回文串·最长回文子序列
薛之谦_2 小时前
JAVA 多线程编程:从基础原理到实战应用
java·开发语言