2.从尾到头打印链表数据

题目描述:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
目的:体会递归和非递归算法
代码:
package com.guanstudy;

import java.util.Stack;

/**

  • @date 2018年4月9日
  • @author junpu.guan
  • @Description: TODO

**/
public class Test {

public static void main(String[] args){
    ListNode node1=new ListNode();
    ListNode node2=new ListNode();
    ListNode node3=new ListNode();
    node1.setData(1);
    node2.setData(2);
    node3.setData(3);
    node1.setNext(node2);
    node2.setNext(node3);
    printListReverse(node1);
}
//递归
public static void printListReverseRecursive(ListNode head){
    if(null!=head){
        if(null!=head.getNext()){
            printListReverseRecursive(head.getNext());
        }   
    }
    System.out.println(head.getData());
}
//非递归
public static void printListReverse(ListNode head){
    Stack stack = new Stack();
    while(null!=head){
        stack.push(head);
        head = head.getNext();
    }
    while(!stack.isEmpty()){
        System.out.println(stack.pop().getData());
    }
}

}
·

你可能感兴趣的:(2.从尾到头打印链表数据)