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

5、从尾部打印链表

时间:2017-07-01 14:38:06      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:遍历   list   return   节点   head   integer   ret   缺点   turn   

 思路1:用额外存储元素,然后遍历输出。如栈或arrayList,前插入,没错都插入到最前面的节点。
    import java.util.ArrayList;
    public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if(listNode == null){
            return new ArrayList<>();
        }
        int num = 0;
        ListNode head = listNode;
        //计算链表长度
        while(listNode != null) {
            num++;
            listNode = listNode.next;
           
        }    
        ArrayList<Integer> lists = new ArrayList<>();        
       
        //倒序插入
        while(head != null) {
            lists.add(0, head.val);

            head = head.next;        
        }       
        return lists;
    }
    }

 思路2:递归实现。每当访问一个节点,就递归输出后面的节点,然后输出自己。缺点:当链表长的时候,递归深度太深,会调用栈溢出。
测试:
只有一个节点,有多个节点。
空指针。

5、从尾部打印链表

标签:遍历   list   return   节点   head   integer   ret   缺点   turn   

原文地址:http://www.cnblogs.com/lingli-meng/p/7102163.html

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