03 从尾到头打印链表
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6 * ListNode(int val) { 7 * this.val = val; 8 * } 9 * } 10 * 11 */
思路一:递归
1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6 * ListNode(int val) { 7 * this.val = val; 8 * } 9 * } 10 * 11 */ 12 import java.util.*; 13 public class Solution { 14 ArrayList<Integer> a=new ArrayList<Integer>(); 15 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 16 if(listNode == null) return a ; 17 if(listNode!=null){ 18 this.printListFromTailToHead(listNode.next); 19 a.add(listNode.val); 20 } 21 return a; 22 } 23 }
方法二 利用堆栈的先进后出
1 import java.util.ArrayList; 2 import java.util.Stack; 3 public class Solution { 4 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 5 Stack<Integer> stack=new Stack<Integer>(); 6 while(listNode!=null){ 7 stack.push(listNode.val); 8 listNode=listNode.next; 9 } 10 11 ArrayList<Integer> list=new ArrayList<Integer>(); 12 while(!stack.isEmpty()){ 13 list.add(stack.pop()); 14 } 15 return list; 16 } 17 }
            
 
作者:shareidea            
 
出处:https://www.cnblogs.com/shareidea94/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。   
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号