我对listNode有以下定义
public class ListNode {
int val;
ListNode next;
ListNode (int x){
val = x;
}
}
我有一个堆栈(名为valueStack的变量),它有一定数量的整数。我想从最后一个顺序的第一个中获取堆栈中的值,并使用这些值创建一个链接列表。 这就是我现在所拥有的,但它会一直覆盖这些值,最终只能链接列表中的一个元素。这是因为我一直将revList重新分配给revList.next,但我不知道怎么做:
ListNode revList = new ListNode(valueStack.pop());
while (!valueStack.isEmpty()){
ListNode toAdd = new ListNode (valueStack.pop());
revList.next = toAdd;
revList = revList.next;
}
答案 0 :(得分:1)
if (stack.isEmpty())
return null; // ??? how are you representing an empty list?
ListNode first = new ListNode(stack.pop());
ListNode last = first;
while (!stack.isEmpty())
last = last.next = new ListNode(stack.pop());
return first;
这就是patricia使用2个变量的含义。
该行
last = last.next = new ListNode(stack.pop());
只是这两行的缩写
last.next = new ListNode(stack.pop());
last = last.next;
请注意,如果您使用这两行,则需要使用while循环{}
的大括号