JZ3 从尾到头打印链表
从尾到头打印链表
https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&&tqId=11156&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> res = new ArrayList(); ListNode cur = listNode; while(cur != null){ res.add(0,cur.val); cur = cur.next; } return res; } }
这个递归会出错
import java.util.ArrayList; public class Solution { ArrayList list = new ArrayList(); public ArrayList printListFromTailToHead(ListNode listNode) { dfs(listNode); return list; } public void dfs(ListNode listNode){ if(listNode == null){ return; } dfs(listNode.next); list.add(listNode.val); } }
递归方法2
import java.util.*; public class Solution { ArrayList<Integer> list = new ArrayList(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode!=null){ printListFromTailToHead(listNode.next); list.add(listNode.val); } return list; } }