在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶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 ...