node.next = node 和 node=node.next 的区别

他的诗句

我现在对这两个代码有点困惑:

node = node.next;
node.next = node;

public class ListNode
    {
      public int val;
      public ListNode next;
      public ListNode(int x) { val = x; }
    }

似乎它们都以某种方式运行良好,但以不同的方式运行。我不会混淆它们,有人可以为我解释一下区别吗?

谢谢

里斯托米

您没有提供太多上下文,但假设我们有以下 LinkedList:a->b->c->d->e(字符表示 ListNodes,箭头是next属性)。

然后我们有ListNode node变量当前指向c列表中的节点

(1) 第一次赋值node = node.next不会改变原始列表中的任何内容,但会改变 的值node赋值后 LinkedList 停留在:a->b->c->d->e 并node指向d

(2) 另一个作业node.next = node变更列表。列表 (d,e) 的其余部分被丢弃,c 开始永远指向自己:a->b->c->c->c->c->c..node保持指向c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章