反轉鍊錶 《劍指offer》

2021-07-23 14:46:17 字數 684 閱讀 9809

題目描述

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

有兩種解題思路:

1.很笨的做法。先遍歷鍊錶,求出鍊錶的長度,然後定義乙個和鍊錶長度一樣的陣列,把數存到這個陣列中,利用這個陣列反向構建這個鍊錶。**如下:

/*

public class listnode

}*/public class solution

int a = new int[count];

while(list2 != null)

for(int j = 0; j < a.length; j++)

else

}return first;}}

2.對next域的賦值,同時對下乙個節點進行儲存,然後對把下乙個節點賦給新的節點,這樣依次迴圈完所有的節點。每次使新插入的節點變成頭第乙個有效節點。

**如下:

/*

public class listnode

}*/public class solution

return pre;}}

劍指offer 反轉鍊錶

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

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.非遞迴 struct listnode class solution listnode ppre null listnode p phead listnode pnext null while p null else p pnext return p...

《劍指offer》 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。之前錯誤的寫法,一直不明白 原因是移位的時候,pcurr移到下一位時,裡面的值已經變成反向指標了,所以不能成功移動,就迴圈巢狀進去了,所以還需要乙個變數pnext來儲存移位前的值。struct listnode class solution phead ...