題目描述:輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
思路:借助棧實現,或使用遞迴的方法。
/**
* 解法一:利用棧輸出
* * @param head 頭節點
* @return list集合
*/public
static arraylist
reverseprintlist1
(listnode head)
//棧非空時繼續彈出
while
(!stack.
isempty()
)return list;
}/**
* 輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。
* 輸入:head = [1,3,2]
* 輸出:[2,3,1]
* * @param head 頭節點
* @return 陣列集合
*/public
static
int[
]reverseprintlist2
(listnode head)
int size = stack.
size()
;int
print =
newint
[size]
;for
(int i =
0; i < size; i++
)return print;
}
/**
* 解法二:遞迴(其實底層還是棧)
* * @param head 頭節點
* @return list集合
*/public
static arraylist
reverseprintlist3
(listnode head)
list.
add(head.val);}
return list;
}/**
* 遞迴(陣列)
*/private arraylist
tmp =
newarraylist
<
>()
;public
int[
]reverseprintlist4
(listnode head)
return res;
}private
void
recur
(listnode head)
tmp.
add(head.val);}
}
@test
public
void
test6()
劍指offer06 從尾到頭列印鍊錶
題目 從尾到頭列印鍊錶 思路 1,注意傳入函式的是指向煉表頭的指標,在函式中不應該直接使用這個指標,而是應該用乙個指標的臨時變數來遍歷鍊錶 2,方法一 使用棧來實現 3,方法二 遞迴在本質上就是乙個棧結構,所以也可以用遞迴來實現 solution include include include us...
劍指offer 06 從尾到頭列印鍊錶
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 限制 0 鍊錶長度 10000 鍊錶特點 只能從前至後訪問每個節點。題目要求 倒序輸出節點值。這種先入後出的需求可以借助棧來實現。通過linkedlist類來實現棧 入棧 遍歷鍊...
劍指 Offer 06 從尾到頭列印鍊錶
題目描述 輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 解題思路 1 在不允許修改鍊錶的結構的條件下,採用棧輔助 2 新建乙個棧,stackstack new stack 將鍊錶的節點依次壓入棧中 新開乙個陣列,int print new int size 用來儲存從棧中彈出的值...