频道栏目
首页 > 资讯 > 其他 > 正文

剑指Offer—03—从尾到头打印链表

17-08-22        来源:[db:作者]  
收藏   我要投稿

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

注意点:

异常情况,链表长度为 0 时应该直接返回。

思路:

运用栈:将遍历的元素加入栈中,然后返回栈内容就行。内存超限,不推荐 集合框架:调用 Collections.reverse(list) 方法进行反转。 递归:构造一个函数,一直调用当前节点的下一个节点,当到达最后一个节点的时候,就开始将元素加入数组列表中。
package A03从尾到头打印链表;

import java.util.ArrayList;
import java.util.Collections;

public class Solution {

    public class ListNode {
        int val;
        ListNode next = null;

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

//  不推荐
//  public ArrayList printListFromTailToHead(ListNode listNode) {
//      ArrayList list = new ArrayList<>();
//      while(listNode != null){
//          list.add(listNode.val);
//          listNode = listNode.next;
//      }
//      Collections.reverse(list);
//      return list;
//  }

    ArrayList list = new ArrayList<>();
    public ArrayList printListFromTailToHead(ListNode listNode) {
        if (listNode != null) {
            printListFromTailToHead(listNode.next);
            list.add(listNode.val);
        }
        return list;
    }

}
相关TAG标签
上一篇:Linux内核|实验一 Shell编程
下一篇:MyBatis学习
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站