题目
输入个链表的头结点,从尾到头反过来打印出每个结点的值。
思路
从头遍历链表,遍历过程中用栈把节点或者节点的值保存下来,然后遍历栈即可。
或者是使用递归
code
非递归,使用栈
public void printListFromTailToHead(ListNode listNode) {
Stack<ListNode> save = new Stack<>();
while (listNode != null) {
save.push(listNode);
listNode = listNode.next;
}
while (!save.isEmpty()) {
ListNode tmp = save.pop();
System.out.print(tmp.val + " ");
}
}
递归
public void printListFromTailToHead2(ListNode listNode) {
if(listNode!=null){
printListFromTailToHead2(listNode.next);
System.out.print(listNode.val + " ");
}
}