qq_31280207 2021-04-05 18:41 采纳率: 0%
浏览 204

关于leetcode反转链表里改变pre.next为什么head.next也跟着改变

class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        pre=head
        cur= None
        while head:
            pre.next=cur
            cur=pre
            pre=head.next
            head=head.next
        return cur

我原本以为head本身就是一个链表,不需要创新新的链表t来保存原来pre.next的指针,但是在调试的过程中发现改变pre.next的值时,head也会跟着改变,这是为什么?

答案应为:

class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        pre=head
        cur= None
        while head:
            t=pre.next
            pre.next=cur
            cur=pre
            pre=t
        return cur
  • 写回答

3条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-05 19:54
    关注

    因为这是同一个链表,你动了 pre.next 其实就是动了 head.next

    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?