我该怎么做才能获取堆栈的元素并将它们添加到单个链表中?

时间:2016-01-28 20:47:19

标签: java linked-list stack singly-linked-list

我对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;
    }

1 个答案:

答案 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循环{}

的大括号