首页 技术 正文
技术 2022年11月11日
0 收藏 817 点赞 2,827 浏览 976 个字

描述:输入一个链表的头节点,从尾到头打印每个节点的值。

思路:从尾到头打印,即为“先进后出”,则可以使用栈来处理;考虑递归的本质也是一个栈结构,可递归输出。

考点:对链表、栈、递归的理解。

package com.java.offer;import java.util.Stack;/**
* @since 2019年2月14日 下午2:13:20
* @author xuchao
*
*/
public class P6_PrintListInReversedOrder {
public static class ListNode<T> {
public T val;
public ListNode<T> next; public ListNode(T val) {
this.val = val;
this.next = null;
}
} // 方法1:(非递归)使用Stack栈的先push后pop
public static <T> void printListReverse(ListNode<T> listNode) {
Stack<ListNode<T>> stack = new Stack<>();
while(listNode!=null) {
stack.push(listNode);
listNode = listNode.next;
}
while (!stack.isEmpty()) {
System.out.println(stack.pop().val);
}
} // 方法2:递归
public static <T> void printListReverse_rec(ListNode<T> listNode) {
if (listNode != null) {
if (listNode.next != null) {
printListReverse_rec(listNode.next);
}
System.out.println(listNode.val);
}
} public static void main(String[] args) {
ListNode<Integer> head = new ListNode<Integer>(1);
head.next = new ListNode<Integer>(2);
head.next.next = new ListNode<Integer>(3); printListReverse_rec(head);
printListReverse(head); }
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,821
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905