反轉乙個單鏈表。
示例:
輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
高階:
你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?
1.首先說一下 迴圈或遞迴 。真正意義上區別不大,無非是整個方法迴圈與部分**迴圈的區別。
2.鍊錶的反轉主要非4步:
(1)儲存下乙個節點
(2)當前節點next指向前乙個節點
(3)將當前的節點存為上乙個節點
(4)下乙個節點儲存為當前節點
/**
* definition for singly-linked list.
* public class listnode
* }*/class solution
//前乙個節點指標
listnode prenode = null;
//當前節點指標
listnode curnode = head;
//下乙個節點指標
listnode nextnode = null;
while (curnode != null)
return prenode;}}
leetcode提交結果:
演算法 反轉鍊錶
編寫帶 實現反轉單鏈表。如 1,2,3,4,5 變為 5,4,3,2,1 要求空間複雜度為o 1 先直接給出乙份完整的 可以直接執行。c include include include typedef int datatype 鍊錶持有的資料的型別 typedef struct node 結點的定義...
演算法 鍊錶反轉
題目 分別實現反轉單向鍊錶和反轉雙向鍊錶的函式。要求如果鍊錶長度為n,時間複雜度要求為o n 額外空間 複雜度要求為o 1 反轉單向鍊錶 class node 反轉單向鍊錶 param head 煉表頭節點 return private static node reverselist node he...
演算法 反轉鍊錶
package bytedance author lzy version 1.0 date 2020 9 4 16 09 反轉鍊錶 public class reverselist public listnode reverselist listnode head 第乙個指標 指向空 翻轉後的末尾節...