- 题目:输入一个链表的头结点,从尾到头打印每个节点的值
- 思路:
- 从头到尾遍历链表节点,并将其压入栈。全部节点入栈后,每次pop出栈顶元素,直到栈为空
- 由于用到了栈,那么就可以想到用递归来实现
- 代码:
利用栈实现
public void printIteration(ListNode head){
if(head == null){
return;
}
LinkedList<ListNode> stack = new LinkedList<>();
ListNode node = head;
while(node != null){
stack.push(node);
node = node.next;
}
while(!stack.isEmpty()){
System.out.println(stack.pop().val);
}
}
递归实现
public void printRecursion(ListNode head){
if(head != null){
if(head.next != null){
printRecursion(head.next);
}
System.out.println(head.val);
}
}