演算法探索 反轉鍊錶

2021-10-23 13:43:46 字數 771 閱讀 5946

反轉乙個單鏈表。

示例:

輸入: 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 第乙個指標 指向空 翻轉後的末尾節...