《剑指offer》面试题5 从尾到头打印链表 Java版

书中方法一:反转应该立刻想到栈,利用一个栈完成链表的反转打印,但是用了额外的O(n)空间。

	public void printFromTail(ListNode first){
		Stack<ListNode> stack = new Stack<ListNode>();
		while(first != null){
			stack.push(first);
			first = first.next;
		}
		
		while(!stack.isEmpty()){
			System.out.print(stack.pop().val);
		}
		
	}

书中方法二:利用递归,在递归中先调用递归,后处理该节点,达到了栈的效果。

	public void printFromTail2(ListNode first){
		if(first == null)return;
		
		printFromTail2(first.next);
		
		System.out.print(first.val);
		
	}
posted @ 2019-09-26 11:20  CrazyJack  阅读(97)  评论(0)    收藏  举报