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

剑指Offer-【面试题05:从头到尾打印链表】

2016-11-18 16:50 489 查看
package com.cxz.question5;

import java.util.Stack;

/*
* 输入个链表的头结点,从尾到头反过来打印出每个结点的值。
* */
public class Demo5 {

/**
* 结点对象
* @author CXZ
*
*/
public static class ListNode {
int val; //结点的值
ListNode next; //下一个结点
}

/**
* 输入个链表的头结点,从尾到头反过来打印出每个结点的值
* 使用栈的方式进行
* @param root
*/
/*public static void printListInverse(ListNode root) {
Stack<ListNode> stack = new Stack<>();
while (root != null) {
stack.push(root);
root = root.next;
}
ListNode temp;
while (!stack.isEmpty()) {
temp = stack.pop();
System.out.println(temp.val+ " ");
}

}*/

/**
* 输入个链表的头结点,从尾到头反过来打印出每个结点的值
* 递归
* @param root
*/
public static void printListInverseByRecursion(ListNode root) {
if (root != null) {
printListInverseByRecursion(root.next);
System.out.println(root.val + " ");
}
}

public static void main(String[] args) {

ListNode root = new ListNode();
root.val = 1;
root.next = new ListNode();
root.next.val = 2;
root.next.next = new ListNode();
root.next.next.val = 3;
root.next.next.next = new ListNode();
root.next.next.next.val = 4;
root.next.next.next.next = new ListNode();
root.next.next.next.next.val = 5;

//printListInverse(root);
System.out.println();
printListInverseByRecursion(root);
}

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: