首页 > 其他分享 >leetcode206-反转链表

leetcode206-反转链表

时间:2023-01-10 20:44:35浏览次数:41  
标签:pre head ListNode 反转 next 链表 leetcode206 null 节点

思路

  • 方法一,递归。将head节点和后续所有节点看做两个部分,对后续部分执行递归函数,然后将两部分组合起来。关键在于head节点的next指向的是除head以外后续所有节点反转后的最后一个节点。
  • 方法二,迭代。使用双指针依次修改每个节点的next即可。

要点

  • 递归法要排除headhead.nextnull的情形。
  • 迭代双指针法最后返回的是pre

代码

递归版:

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null || head.next==null)
            return head;
        ListNode t=reverseList(head.next);
        head.next.next=head;
        head.next=null;
        return t;
    }
}

迭代版(双指针):

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null || head.next==null)
            return head;
        ListNode p=head;
        ListNode pre=null;
        while(p!=null){
            ListNode t=p.next;
            p.next=pre;
            pre=p;
            p=t;
        }
        return pre;
    }
}

标签:pre,head,ListNode,反转,next,链表,leetcode206,null,节点
From: https://www.cnblogs.com/fxbest/p/17041329.html

相关文章

  • leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]
    目录168.Excel表列名称171.Excel表列序号190.颠倒二进制位205.同构字符串228.汇总区间448.找到所有数组中消失的数字461.汉明距离876.链表的中间结点836.矩形重......
  • 单链表
    图示:代码:1importlombok.Data;2importjava.util.Stack;34publicclassSingleLinkedListTest{5publicstaticvoidmain(String[]args){......
  • 链表反转
    #include<iostream>structListNode{intdata=0;ListNode*next=NULL;};//反转链表//题意:反转一个单链表。//示例:输入:1->2->3->4->5->NULL输出:......
  • 刷刷刷Day8| 151. 反转字符串中的单词
    151.反转字符串中的单词LeetCode题目要求给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词......
  • Redis-数据结构与对象-链表
    链表Redis使用的C没有内置链表结构,Redis自己实现了链表双端:链表节点带有prev和next指针,获取某个节点的前置节点和后置节点的复杂度都是O(1)。无环:表头节点的prev指针和表......
  • C++实现双向链表的相关操作代码
    #include<iostream>#include<cstdlib>usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemtype;typedefintStatus;typedefstructDuL......
  • 【优先队列】LeetCode 23. 合并K个升序链表
    题目链接23.合并K个升序链表思路把全部结点放入优先队列中,然后再依次组成新链表代码classSolution{publicListNodemergeKLists(ListNode[]lists){......
  • 【LeeCode】7. 整数反转
    【题目描述】给你一个32位的有符号整数 ​​x​​​ ,返回将 ​​x​​ 中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围 ​​[−231, 231......
  • python实现单向循环链表与双向链表
    目录单向循环链表操作实现双向链表操作实现单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty(......
  • C 单向链表(尾插法)
    初学数据结构,用C实现了一个简单的单向链表,用以存储和遍历查询学生信息,只有构造链表和遍历查询链表的功能,主要为了展示单向链表尾插法的实现,原创代码,不足之处还请多评论指正......