解題思路:
1.迭代–建立乙個新的鍊錶的啞巴節點root,建立乙個過度指標n,使用頭插法將head鍊錶中的元素取出插入root鍊錶中,返回root.next;
class solution
listnode root=new listnode(0);
listnode n=null;
while(head!=null)
return root.next;}}
2.遞迴
class solution
listnode h=reverselist(head.next);
head.next.next=head;
head.next=null;
return h;}}
反轉鍊錶 清晰易懂的兩種方法
反轉乙個單鏈表。如下示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null public class listnode 一 迭代法 注意觀察示例 1 2 3 4 5 null的反轉可以看成 null 1 2 3 4 5。會發現鍊錶的反轉基本上就是箭頭的方向的反轉,即節點前驅和後...
LeetCode206 鍊錶反轉兩種實現
迭代實現 小結反轉乙個單鏈表。輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 其實拿到這個題目首先應該想到的是遞迴拆分。1 既然是反轉鍊錶,那我們先從最簡單的兩個節點開始 2 拿到這個最簡單的鍊錶,我們不難看出。因為2的下乙個節點是空,所以反轉後,2就是頭結點。所以,我們可以...
leecode206 鍊錶反轉 三種方法
第一種 記錄前驅,從第乙個節點開始 1.用乙個指標記錄其next的位置 防止在其指向前面節點無法指向後面的節點的位置 q p next 2.記錄了後面的位置,那我們可以大膽的將p next指向前驅節點pre p next pre 3.前驅節點變為當前節點 pre p 4.當前節點可以達到後面節點的位...