leetcode解題之反轉鍊錶

2021-10-02 22:03:39 字數 1053 閱讀 4990

反轉乙個單鏈表。

示例:

輸入:1

->2-

>3-

>4-

>5-

>null

輸出:5

->4-

>3-

>2-

>1-

>null

高階: 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?

笨人的方法,遍歷輸出鍊錶元素到列表,讓後再倒序遍歷列表建立新的鍊錶

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

listnode ansnode =

newlistnode(0

);listnode temnode = ansnode;

for(

int i=list.

size()

-1;i>=

0;i--

)return ansnode.next;

}}

簡單點的迭代,需要前置節點和當前節點位址交換

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

return prenode;

}}

遞迴方法,不是太理解,個人的理解是將得到的節點往後新增,然後將前乙個節點置空

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

}

具體參考官方題解

leetcode解題之回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false 示例 2 輸入 1 2 2 1輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?先寫乙個簡單的迭代法對比法 使用額外空間 definition for singly linked list.publi...

leetcode鍊錶題目之206 反轉鍊錶

題目 方法一 在遍歷列表時,將當前節點的 next 指標改為指向前乙個元素。由於節點沒有引用其上乙個節點,因此必須事先儲存其前乙個元素。在更改引用之前,還需要另乙個指標來儲存下乙個節點。不要忘記在最後返回新的頭引用!definition for singly linked list.struct l...

LeetCode 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?思路 雙指標,先用乙個指標算出鍊錶結點個數n,每次快指標從頭往先前移動n 步,慢指標往前移動1步進行交換即可。definition for sin...