18 刪除鍊錶的節點

2021-09-24 19:30:34 字數 1153 閱讀 5096

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

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

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

自己想法:

我的想法也是不用遞迴,new乙個輔助節點,防止第一二個就是重複。用兩個指標,第乙個指標是指向當前不重複的節點first,第二個指標pnode用來往後搜尋重複節點。

在編**時候發現自己對節點和指標的概念還不是很明白,比如最後**:

return first1->next;//這個一開始寫的是return first->next;first是指標,而first1是節點

//指標和節點還是弄的不是很明白,這個應該返回first1節點的下乙個節點

指標是不能返回下乙個鍊錶的,鍊錶是由乙個個節點組成的,而指標只是負責指到某個節點,就是指示作用。所以

pnode = pnode->next就是指標的往下搜尋,指向節點。

**:

/*

struct listnode

};*/

class solution

listnode * first1 = new listnode(0);

first1->next = phead;//這個是節點之間的指向關係,first1的下乙個節點是phead,而不是指標關係

listnode * first = first1;//這個是指標關係,first指標指向first1節點

listnode * pnode = phead;//這個是指標關係,pnode指標指向phead節點

while (pnode !=null )

first->next = pnode->next;

pnode = pnode->next;

} else

}return first1->next;//這個一開始寫的是return first->next;first是指標,而first1是節點

//指標和節點還是弄的不是很明白,這個應該返回first1節點的下乙個節點

}};

18 刪除鍊錶節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...

18 刪除鍊錶的節點

class node object 節點類 def init self,data self.num data self.next none class deletenode object 實現刪除指定節點功能 defdelete node self,head,delnode if head none...

JZ 18 刪除鍊錶的節點(鍊錶)

設當前節點指標 cur curcu r 和前驅節點指標 pre prepr e,遍歷鍊錶找到目標節點後執行 pre nex t cu r.ne xtpre.next cur.next pre.ne xt c ur.n ext 即可刪除 cur curcu r 節點 演算法流程 definition ...