反轉乙個單鏈表。
示例:
輸入: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...