題目概述
輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。
考察點:
鏈表、遞歸思想。
實現思路
-
遞歸的思路,只要鏈表不爲空,一直往後進行遍歷,然後直到到達鏈表的末尾,就開始用數組保存下來結果
Java代碼(可以直接複製使用)
public class PrintListFromTailToHead {
private ArrayList<Integer> result = new ArrayList<Integer>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode == null) {
return new ArrayList<Integer>();
}
//遞歸添加
printListVal(listNode);
return result;
}
private void printListVal(ListNode curNode) {
if (curNode == null) {
return;
}
printListVal(curNode.next);
//回溯時添加
result.add(curNode.val);
}
/**
* 結點類
*/
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
}
有問題的小夥伴可以在下方留言哦