劍指offer 反轉鍊錶(Java)

2021-09-11 08:24:00 字數 479 閱讀 2188

題目:定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。

思路:

方法一:使用三個指標(l,cur,r)進行實現(cur為當前遍歷到的節點,l為cur的前乙個節點,r為cur的後乙個節點)。令cur指向l,r則是用於防止鍊錶斷裂

注:當前節點從head開始

方法二(遞迴):找到最後乙個結點作為返回值,遞迴函式中,找到最後的頭結點後,開始進行每個結點next值的轉換。

考點:**的魯棒性

實現:

public listnode reverselist(listnode head) 

return l;

}

收穫:

與鍊錶相關的題目總是涉及大量指標操作,以後遇到鍊錶相關的題目時,多考慮指標的使用。

劍指offer 反轉鍊錶 java

題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。思路解析 非遞迴方法 新建乙個listnode煉表頭節點pre,然後把原來的鍊錶從前到後摘下來,此時需要乙個next儲存後邊的節點。然後摘下來的head的下乙個節點設定成pre,迴圈直到head為null。遞迴方法 找到鍊錶的最後乙個節點,作為...

劍指offer 反轉鍊錶 Java版

public class test16 reverselist else node reverseheadnode reverselist head 輸出翻轉鍊錶 while reverseheadnode null private static node reverselist node head...

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單鏈表,逐個鏈結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第乙個節點挪到新錶的表尾。public class l...