这只输出"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初始化和分配之后执行的,所以在这种情况下可以正常工作。