码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer第3题:从尾到头打印链表

时间:2017-12-04 13:12:35      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:元素   nod   ima   存储   turn   图片   blog   创建   port   

技术分享图片

 

方法一:采用栈来存储,用ArrayList保存。注意题目给出的输出结果是ArrayList

import java.util.ArrayList;
import java.util.Stack;


public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack=new Stack<>();
        ArrayList<Integer> arrayList=new ArrayList<>();
        while (listNode!=null){
          stack.push(listNode.val);
            listNode=listNode.next;
        }
        while (!stack.isEmpty()){
            arrayList.add(stack.pop());
        }
        return arrayList;
    }
}
class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
}

  方法二: 递归在本质上是一个栈结构,于是很自然的想到了用递归来实现。注意 ArrayList的创建要在函数的外面,不然每次又去重新创建了该对象,导致最后只有一个元素。static加上去出错,至于原因我还要再看一下。

import java.util.ArrayList;
public class Solution {
    ArrayList<Integer> arrayList=new ArrayList<>();
    public  ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if(listNode!=null){
            if(listNode.next!=null){
                printListFromTailToHead(listNode.next);
            }
            arrayList.add(listNode.val);
        }
        return arrayList;
    }
}

加入在前面加入static之后的结果:在IDE里面是可以跑通的,另外,把static的变量放入方法里面是会有语法错误的(Java有,c、c++没有错误)

技术分享图片

 

 技术分享图片

 

剑指offer第3题:从尾到头打印链表

标签:元素   nod   ima   存储   turn   图片   blog   创建   port   

原文地址:http://www.cnblogs.com/imqsl/p/7976414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!