public class test16_reverselist
else
} node reverseheadnode = reverselist(head);
//輸出翻轉鍊錶
while(reverseheadnode != null) }
private static node reverselist(node head)
/*//只有乙個節點 已包含在下面情況
if(head.next == null)*/
node reversehead = null;
node prenode = null;
node pnode = head;
while(null != pnode)
//將前繼節點賦給當前節點的下乙個
pnode.next = prenode;
//將當前節點作為前繼節點 將後繼節點作為當前節點 為下乙個迴圈做準備
prenode = pnode;
pnode = nextnode;
} system.out.println(reversehead.value);
return reversehead;
}}
劍指offer 反轉鍊錶 java
題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。思路解析 非遞迴方法 新建乙個listnode煉表頭節點pre,然後把原來的鍊錶從前到後摘下來,此時需要乙個next儲存後邊的節點。然後摘下來的head的下乙個節點設定成pre,迴圈直到head為null。遞迴方法 找到鍊錶的最後乙個節點,作為...
劍指offer 反轉鍊錶(Java)
題目 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。思路 方法一 使用三個指標 l,cur,r 進行實現 cur為當前遍歷到的節點,l為cur的前乙個節點,r為cur的後乙個節點 令cur指向l,r則是用於防止鍊錶斷裂 注 當前節點從head開始 方法二 遞迴 找到最後乙個...
劍指offer 反轉鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單鏈表,逐個鏈結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第乙個節點挪到新錶的表尾。public class l...