从尾到头打印链表(剑指offer)
看到从尾到头输出,第一反应就是栈,因此我们需要定义一个指针用来定位当前节点的数,还需要一个定义栈用来存放链表中各节点的元素,以及一个用来接收出栈的元素数组。代码实现如下:
class Solution {
public int[] reversePrint(ListNode head) {
ListNode temp = head;
Stack<ListNode> stack = new Stack<ListNode>();
while(temp!=null){
stack.push(temp);
temp = temp.next;
}
int size = stack.size();
int[] answer = new int[size];
for(int i=0;i< size;i++){
answer[i] = stack.pop().val;
}
return answer;
}
}
本人在调试期间发现一个问题,当for循环中循环条件为i<stack.size()时,数组的最后一位数字会变成0,例如这样.
但是换成size时就会输出正确结果,路过的大佬帮忙解答,小菜鸡不甚感激!