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<ListNode> stack = new Stack<ListNode>();
    while(null!=head){
        stack.push(head);
        head = head.getNext();
    }
    while(!stack.isEmpty()){
        System.out.println(stack.pop().getData());
    }
}

}
·

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。