从尾到头打印链表
来源:互联网 发布:网络药理学会议 编辑:程序博客网 时间:2024/06/05 16:28
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
实现如下:
package cn.yzx.nowcoder;import java.util.ArrayList;import java.util.Stack;/** * 题目描述: * 输入一个链表,从尾到头打印链表每个节点的值。 * @author yzx * */public class PrintListFromTailToHead { public static void main(String[] args) { ListNode list1 = new ListNode(1); ListNode list2 = new ListNode(2); list1.next = list2; ListNode list3 = new ListNode(3); list2.next = list3; ListNode list4 = new ListNode(4); list3.next = list4; ArrayList<Integer> res = printListFromTailToHead(list1); System.out.println("倒置数据"); System.out.println(res); } public static class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } //思路:要实现链表的倒置打印,可以通过栈来实现。 public static ArrayList<Integer> printListFromTailToHead1(ListNode listNode) { ArrayList<Integer> list = new ArrayList<Integer>(); //用栈来保存数据,以便倒置存入ArrayList Stack<Integer> tmp = new Stack<Integer>(); while(listNode != null){ tmp.push(listNode.val); listNode = listNode.next; } while(!tmp.isEmpty()){ list.add(tmp.pop()); } return list; } //第二种方法思路:通过递归来实现,递归的实质还是栈 public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list = new ArrayList<Integer>(); if(listNode != null){ if(listNode.next != null){ list = printListFromTailToHead(listNode.next); } list.add(listNode.val); } return list; }}
1 0
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 【20】从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- Offer5 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- String、StringBuffer、StringBuilder的区别
- 计算机网络: 同步传输和异步传输(理解)
- [疯狂Java]JDBC:数据库元数据分析
- oracle性能调优-执行计划
- 初始化job,并分析svn日志--initNEW1-UFT.bat
- 从尾到头打印链表
- 学习笔记之深入浅出MFC 第4章 对话框的运行
- Windows系统下IE单双多进程分析
- Coursera Chaptereight:Lists Assignment 8.5
- Java 自定义异常类
- iOS开发之指定UIView的某几个角为圆角
- Java enum的用法详解
- 让多个 DIV 高度相同
- 网络管理 -- TCP/IP协议簇