題目輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。
示例 1:
輸入:head = [1,3,2]
輸出:[2,3,1]
限制:
0 <= 鍊錶長度 <= 10000
思路 我覺得**這個題目有問題**!
頭結點是單鏈表第乙個節點之前的節點,沒有前驅節點。leetcode給的答案把頭結點當成這了首節點,我自己寫傳入頭結點反而錯了。所以這裡請注意區分鍊錶的**頭結點與首節點!**
**傳入頭結點, 附完整節點、鍊錶實現和測試**。
/**
* @version v1.0
* @classname:offer06
* @description: 從尾到頭列印鍊錶
* @author:daniel
* @date:2021/1/20 下午4:10
*/public
class
offer06
// 方法一:使用堆疊
public
static
int[
]reverseprint
(listnode head)
stack
stack =
newstack
<
>()
;// 定義乙個輔助變數指向當前節點
listnode curnode = head.next;
// 先將所有的節點壓入棧
while
(true
) stack.
push
(curnode)
; curnode = curnode.next;
}int
results =
newint
[stack.
size()
];int index =0;
// 然後將所有的節點出棧,實現從尾到頭列印
while
(stack.
size()
>0)
return results;}}
class
linkedlist
// 增加節點
public
void
add(listnode node)
curnode = curnode.next;
} curnode.next = node;}}
class
listnode
}
劍指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 用來儲存從棧中彈出的值...