前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指offer(5)——从尾到头打印链表

剑指offer(5)——从尾到头打印链表

作者头像
说故事的五公子
发布2019-09-11 17:22:41
2560
发布2019-09-11 17:22:41
举报

题目:

输入一个链表的头结点,从尾到头反过来打印出每个结点的值。结点定义如下: public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }

思路:

  • 从尾到头,我们首先想到的就是栈这个结构,栈是先进先出的结构,先进来的元素最后再出去,所以本题我们可以考虑用栈来解决
  • 想到栈的同时我们也应该联想到递归

代码:

代码语言:javascript
复制
 1 import java.util.Stack;
 2 
 3 import org.junit.jupiter.api.Test;
 4 
 5 /**
 6  *   反向打印链表
 7  * @author wydream
 8  *
 9  */
10 
11 public class PrintList {
12 
13     class ListNode{
14         Object key;
15         ListNode next;
16         public ListNode(Object key) {
17             this.key=key;
18             this.next=null;
19         }
20     }
21     
22     //采用栈
23     public void printListRever(ListNode node) {
24         Stack<ListNode> stack=new Stack<ListNode>();
25         while(node!=null) {
26             stack.push(node);
27             node=node.next;
28         }
29         while(!stack.empty()) {
30             System.out.println(stack.pop().key);
31         }
32     }
33     
34     //采用递归
35     public void printListReverdg(ListNode node) {
36         if(node!=null) {
37             printListReverdg(node.next);
38             System.out.println(node.key);
39         }else {
40             return;
41         }
42     }
43     
44     
45     //=============测试代码=============
46     @Test
47     public void test() {
48         ListNode ListNode1 = new ListNode(1);
49         ListNode ListNode2 = new ListNode(2);
50         ListNode ListNode3 = new ListNode(3);
51         ListNode ListNode4 = new ListNode(4);
52         ListNode ListNode5 = new ListNode(5);
53         ListNode1.next=ListNode2;
54         ListNode2.next=ListNode3;
55         ListNode3.next=ListNode4;
56         ListNode4.next=ListNode5;
57         System.out.println("采用栈:");
58         printListRever(ListNode1);
59         System.out.println("采用递归:");
60         printListReverdg(ListNode1);
61     }
62     
63     
64 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目:
  • 思路:
  • 代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档