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;
}
查看15道真题和解析