JZ03-从尾到头打印链表
从尾到头打印链表
https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking&tab=answerKey
public static ArrayList<Integer> printListReverse1(ListNode headNode) { ArrayList<Integer> list = new ArrayList<>(); Stack<ListNode> stack = new Stack<>(); while (headNode != null) { stack.push(headNode); headNode = headNode.next; } while (!stack.isEmpty()) { list.add(stack.pop().val); //pop弹出并删除,peek只弹出,不删除 } return list; } ********************************************************************************************* static ArrayList<Integer> list4 = new ArrayList<>(); public static ArrayList<Integer> printListReverse4(ListNode headNode) { if (headNode.next != null) { printListReverse4(headNode.next); //return后向下继续执行 } list4.add(headNode.val); //最后一次递归结束条件为 尾结点。。。因为尾结点.next为null。跳出上面的递归,执行下面的语句 return list4; }