您的位置:首页 > 职场人生

剑指offer|面试题5:从尾到头打印链表(Java代码)

2016-11-20 14:07 459 查看
面试题5:从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每一个结点的值。

这个题目可以有三种做法:

1)递归

2)用到栈

3)存储到数组或者其他容器,然后倒着遍历(不好)

主要实现递归和利用栈的两种方式:

Java代码实现如下:

import java.util.Stack;
public class Solution{
//递归的方式
public static void showRevertNode(ListNode head){
if(head==null){
return;
}
showRevertNode(head.next);
System.out.println(head.data);
}
//利用栈的方式
public static void showRevertNode2(ListNode head){
if(head==null){
return;
}
Stack<ListNode> stack = new Stack<>();
while(head!=null){
stack.push(head);
head = head.next;
}
while(!stack.isEmpty()){
ListNode tempNode = stack.pop();
System.out.println(tempNode.data);
}
}

public static void main(String[] args){
ListNode head = new ListNode(0);
head.next = new ListNode(1);
head.next.next = new ListNode(2);
showRevertNode2(head);
}

}
class ListNode{
int data;
ListNode next;
public ListNode(int data){
this.data = data;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: