失败学专家诶♬ 2023-07-14 00:41 采纳率: 83.9%
浏览 21
已结题

关于#链表#的问题:两两交换其中相邻的节点,并返回交换后链表的头节点(语言-java)

img

想法:假如链表为1->2->3->4->5->null,然后我想的是先定义一个变量temp指针先去引用1这个节点,next每次引用temp的下一个节点,即对应是2。 然后再拿到这个链表的最后一个节点last(5),然后让head指向这个节点(5),再让这last(5)指next(2),当完成这些之后就更新head=next(即为2的节点)这个节点继续一直循环,然后到head.next==null时退出循环(上面的数字均是该节点的val值)

问题:如果 secondLast.next=null放在后面在leetcode一直显示超时,如果 secondLast.next=null;放在拿到最后一个节点的的时候却又能够通过,想知道是为什么
public static void reorderList(ListNode head) {
        if(head==null||head.next==null){
            return;
        }
        ListNode temp=head;
        ListNode next=head.next;
        while(temp.next.next!=null){
            temp=temp.next;
        }
        ListNode secondLast=temp;
        ListNode last=temp.next;
        //secondLast.next=null;为什么要在拿到最后一个节点时,立马让倒数第二个节点指向null**_
        last.next=next;
        head.next=last;
        secondLast.next=null;//为什么要在拿到最后一个节点时,立马让倒数第二个节点指向null**_
        head=next;
        reorderList(head);
    }

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 7月15日
    • 修改了问题 7月14日
    • 修改了问题 7月14日
    • 创建了问题 7月14日

    悬赏问题

    • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
    • ¥15 ArcGIS批量裁剪
    • ¥15 labview程序设计
    • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
    • ¥15 Cloudreve保存用户组存储空间大小时报错
    • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
    • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
    • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
    • ¥15 android 集成sentry上报时报错。
    • ¥15 抖音看过的视频,缓存在哪个文件