为什么我不能将 ListNode 设置为 null,指向它,然后定义它?



这只输出"0",我想让它输出"01"

    ListNode fakehead = new ListNode(0);
    ListNode node = null;
    fakehead.next = node;
    node = new ListNode(1);

但是输出的是"012"

    ListNode fakehead = new ListNode(0);
    ListNode node = new ListNode(1);
    fakehead.next = node;
    node.next = new ListNode(2);

为什么我不能设置node = null,然后初始化它以打印"01"?

做这件事的正确约定/代码是什么?我想在fakehead.next上创建新节点?

当你第一次设置节点为null并制作假头时。下一个=节点然后假头。Next指向null。由于没有为node分配空间,所以当编译器执行"node = new ListNode(1);"这条语句时,它会为node分配一个新的内存。但是因为你在初始化之前让fakehead指向它。Next仍然只指向null。这就是为什么输出结果只有0。

,而在第二种情况下fakehead。Next = node是在node初始化和分配之后执行的,所以在这种情况下可以正常工作。

相关内容

  • 没有找到相关文章

最新更新