《劍指offer》練習 面試題18 刪除鍊錶的節點

2021-08-21 14:43:25 字數 875 閱讀 4978

題目:在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

思路一:非遞迴

1. 首先新增乙個頭節點,以方便碰到第乙個,第二個節點就相同的情況

2.設定 pre ,last 指標, pre指標指向當前確定不重複的那個節點,而last指標相當於工作指標,一直往後面搜尋。

package offer;

public class solution18

pre.next = last.next;

// 注意這裡賦的是pre.next,而不是pre

// 說明pre後的next指標如果還是指向乙個重複的數,可以將next指標繼續改為last.next

思路二:遞迴

package offer;

public class solution18

return deleteduplication(pnode); // 從第乙個與當前結點不同的結點開始遞迴

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...

劍指offer面試題11

面試題1 數值的整數的次方 題目 實現函式double power double base,int exponent 求base的 exponent次方。不得使用庫函式,同時不需要考慮大數問題。思路 首先應該明確指數的可能取值 正整數,0,負整數 另外還需要考慮底數是0的情形。對於負整指數,我們可以...

劍指offer面試題15

面試題15 鍊錶中倒數第k個結點 題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾結點是倒數第乙個結點。例如乙個鍊錶有6個結點,從頭結點開始它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個結點是值為4的結點。預備知識 鍊錶結點的定義如下 ...