面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
- 题目
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
- 思路
- 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序。
- 代码
import java.util.ArrayList;
import java.util.Stack;
/**
*描述逆序打印链表
* 输入:一个链表L1
* 输出:按链表值逆序返回一个Arraylist
*
*/
public class ReversePrintList {
/**需要定义节点,值和指针**/
static class ListNode{
int val;
ListNode next=null;
ListNode(int val){
this.val=val;
}
}
public static ArrayList<Integer> ReverseList(ListNode L1){
Stack<Integer> sk1=new Stack<Integer>();
ArrayList<Integer> res=new ArrayList<Integer>();
if(L1==null){
return null;
}
while(L1!=null){//入栈
sk1.push(L1.val);
L1=L1.next;
}
int len=sk1.size();
for(int i=0;i<len;i++){//出栈
res.add(sk1.pop());
}
return res;
}
public static void main(String Args[]){
ListNode l1=new ListNode(1);
ListNode l2=new ListNode(2);
ListNode l3=new ListNode(3);
ListNode l4=new ListNode(4);
l1.next=l2;
l2.next=l3;
l3.next=l4;
ReverseList(l1);
ArrayList<Integer> a1=new ArrayList<Integer>();
a1=ReverseList(l1);
System.out.print(a1);
}
}- 输出
[4, 3, 2, 1]
面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList的更多相关文章
- 3、输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 利用栈“先进后出”的性质,将链表的值存入到栈里,然后将栈里的值存入到构建好的容器里,最后打印容器. class So ...
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
package algorithms; import java.util.ArrayList; import java.util.Stack; /** * public class ListNode ...
- 剑指Offer_编程题-003 - 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
如题 (总结) 首节点也存放了值,所以ListNode t = listNode; 直接从头开始遍历即可. 简单题目,但是构建的时候出了点问题,毕竟需要自己简单测测. 掌握链表的构建方法, 还要根据题 ...
- python链表从尾到头的顺序返回一个ArrayList
思路:获取链表的值,添加入列表中,反转列表即可获得ArrayList # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): ...
- 剑指offer 面试题6:从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 编程思想 从前往后遍历,将值存入栈中,然后打印栈中内容即可. 编程实现 /** * struct ListNode { * ...
- 剑指Offer编程题3——从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 题目解析 方法1:建立两个vector,第一个用来存储正向访问的数据,第二个用来反向存储. /** * struct L ...
- 剑指offer【03】- 从尾到头打印链表(4种实现方法)
题目:从尾到头打印链表 考点:链表 题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 法一:ArrayList头插法 /** * public class ListNode ...
- 《剑指offer》从尾到头打印链表
本题来自<剑指offer> 从尾到头打印链表 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 方案一:首先遍历到尾部,然后从尾部进行到头值进行操作,后进先 ...
- 剑指offer——python【第3题】从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 理解 首先要理解链表的概念,链表是由一串串数字首尾相连组成的 解题 # -*- coding:utf-8 -*- # cla ...
随机推荐
- 安卓版本和Api Level
Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 ...
- Eclipse 变量点击高亮显示以及自己定义高亮显示颜色
1.方法一:alt+shift+o 打开/关闭,该功能 2.方法二:windows-> preferences->java->Editor->Mark Occurences ( ...
- sql里的in对应linq的写法 及 IQueryable转化为Dictionary
string[] arID = { "0001", "0002" }; var dict = this.service.GetMyList(m => ar ...
- linux 监控进程所消耗的资源(内存),达到阈值(绝对值、相对值)后,将其杀死
监控某个python进程是否存在,如不存在则启动 #!/bin/bashwhile [ 1 ]do #打印出当前的jboss进程:grep jboss查询的jboss进程,grep -v " ...
- js来获取所有屏幕适配的总结
"屏幕分辨率为:"+screen.width+"*"+screen.height "屏幕可用大小:"+screen.availWidth+& ...
- (16)ServletContext详解
1,作用: ServletContext对象 ,叫做Servlet的上下文对象.表示一个当前的web应用环境.一个web应用中只有一 ...
- jvm部分知识总结
1.jvm有三种执行模式,分别是解释执行,混合执行和编译执行,默认情况是混合执行模式. java version " Java(TM) SE Runtime Environment (bui ...
- mysql数据库ip与字符串
Mysql自带的IP转换语句 inet_aton:将ip地址转换成数字型 inet_ntoa:将数字型转换成ip地址 //使用inet_aton函数,将字符串IP转换为整型: mysql> se ...
- Avoiding memory leaks
Android applications are, at least on the T-Mobile G1, limited to 16 MB of heap. It's both a lot of ...
- Extjs 4 MVC中全局配置文件
Extjs 4 Config和Mixins http://kldn.iteye.com/blog/1386622 http://www.fengfly.com/html/JavaScript/ExtJ ...