您的位置:首页 > 其它

将一个链表倒序输出

2016-05-17 19:58 393 查看
思路一:遍历所有节点,将所有节点的值按顺序存入List,从尾部开始遍历这个list,将遍历值按顺序存入一个list2,返回list2,实现代码如下:

import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> resultList = new ArrayList<Integer>();
while(listNode!=null){
list.add(listNode.val);
listNode = listNode.next;
}
for(int i=list.size()-1;i>=0;i--){
resultList.add(list.get(i));
}

return resultList;
}
}


思路二:利用栈先入后出的结构,将所有节点的值存入一个栈中,依次取出栈中的值返回即可,代码如下:
import java.util.Stack;
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> sta = new Stack<Integer>();
ArrayList<Integer> arr = new ArrayList<Integer>();
while(listNode!=null){
sta.push(listNode.val);
listNode = listNode.next;
}
while(!sta.isEmpty()){
arr.add(sta.pop());    //删除栈的顶部元素,并将其作为返回值返回
}
return arr;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: