我正在编写一个程序,将数字切成数字,然后以相反的顺序将数字存储在链接列表中。但是我不明白如何返回链表?
我尝试创建头ListNode,但失败了。
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution{
int sum=123;
public ListNode sol(){
answer = new ListNode(0);
while (sum > 0) {
int digit = sum % 10;
answer= new ListNode(digit);
answer= answer.next;
sum /= 10;
}
return //////
}
}
答案 0 :(得分:3)
这里:
answer = new ListNode(0);
该ListNode
实例是第一个元素,因此是列表的“根”。但是您的列表仅被单链接。您无法返回上一个元素!您必须记住它的开始位置!
换句话说,您有两个选择:
换句话说:当使用answer
作为列表中的“移动指针”时,您应该执行以下操作:
root = new ListNode(0); // remember this, it is the start of the list!
answer = root;
然后您必须确保保持root
不变!因为该引用代表列表数据的(唯一!)入口。当您丢失它时,一切都将丢失;-)