《劍指Offer》面試題57 刪除鍊錶中重複的節點

2021-07-14 16:10:10 字數 508 閱讀 6702

題目:在乙個排序的鍊錶中,如何刪除重複的節點?

樣例輸入: 1 2 3 3 4 4 5

樣例輸出: 1 2 5

1.新建乙個頭節點,以防第乙個節點被刪除。

2.儲存當前節點上個節點,迴圈遍歷整個鍊錶,如果當前節點的值與下乙個節點的值相等,則將當前節點的值與next.next節點的值比較,直到不相等或者null為止,最後將當前節點的上個節點pre指向最後比較不相等的節點。

3.如果當前節點與next節點不相等,則直接節點指標全部向後移動一位。

package com.test20160709;

/** * created by yan on 2016/7/9.

*/public

class

deleteduplication else

}return first.next;

}public

class

listnode

}}

劍指offer 面試題57 刪除鍊錶中重複的結點

題目 在乙個排序的鍊錶中,如何刪除重複的結點?例如1 2 3 3 4 4 5刪除重複結點後為1 2 5。思路 題目看似很簡單,但要寫出無bug魯棒性好的 其實有一定難度。首先重複結點可能出現在頭結點,如果要修改頭結點的指標,那麼傳入的引數應該為指標的指標,即指向頭結點指標的指標。對於重複結點,處理的...

劍指offer 面試題18 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個節點指標,定義乙個函式在o 1 時間內刪除該節點。鍊錶節點與函式的定義如下 public static class listnode 將要刪除節點的next節點直接複製到該節點上。刪除原先的next節點 public void deletenode listnode hea...

劍指Offer面試題18 刪除鍊錶的節點

刪除鍊錶的節點 struct listnode void deletenode listnode plisthead,listnode ptobedelete if ptobedelete next nullptr 要刪除的節點不是尾節點 else 要刪除的節點為尾節點 p next nullptr...