JZ24 反转链表

JZ24 反转链表,第1张

描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

数据范围: 0\leq n\leq10000≤n≤1000

要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。

如当输入链表{1,2,3}时,

经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

以上转换过程如下图所示:

示例1

输入:

{1,2,3}

复制返回值:

{3,2,1}

复制

示例2

输入:

{}

复制返回值:

{}

复制说明:

空链表则输出空 
public ListNode ReverseList(ListNode head) {
        if(head==null) return null;
        ListNode ld=head.next;//第二个节点开始的一条链
        head.next=null;//第一个节点摘下来 很重要
        while(ld!=null){
            ListNode t = ld.next;
            ld.next=head;//注意没有头结点 直接=head
            head=ld;//千万注意 head指向ld 而非 head.next=ld
            ld=t;
        }
        return head;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/732529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存