在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5
public
class
listnode
}public listnode deleteduplication
(listnode phead)
listnode first=
newlistnode(0
);//新建立乙個頭節點,作為最後返回的頭節點
listnode ppre,pcur;
first.next=phead;
ppre=first;
//ppre指向當前的節點
pcur=first.next;
//pcur指向需要判斷是否重複節點的節點,用於搜尋重複的節點
while
(pcur!=null)
ppre.next=pcur.next;
pcur=pcur.next;
//刪除重複節點
//ppre此時為重複節點的前乙個節點,pcur此時為最後乙個重複的節點
//將當前ppre節點的下乙個節點指向pcur的下乙個節點,然後將搜尋節點往後移動一位
}else
}//返回頭節點
return first.next;
}
輸入兩個鍊錶,找出它們的第乙個公共結點。(注意因為傳入資料是鍊錶,
所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的)
public listnode findfirstcommonnode
(listnode phead1,listnode phead2)
while
(p2!=null)
p2=p2.next;
}return null;
}
public listnode findfirstcommonnode
(listnode phead1,listnode phead2)
return p1;
}
刪除鍊錶的重複節點
思路 就是找到不重複出現的節點,然後連線到新鍊錶上面 反思 在連線節點到新鍊錶的時候,每次都要把尾部節點的next指標設定為空!以防當前尾部節點真的是最後乙個節點卻沒給next設定指標域為空 struct listnode class solution listnode temp pnode 此時指...
鍊錶的重複節點刪除
題目一 力扣83 刪除重複的節點 保留重複的節點 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 解法1 使用set去重,思路很簡單。時間複雜度o n 空間複雜度o n public sta...
鍊錶(刪除重複的節點)
題目要求 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題解 先判空和長度是否為一 定義兩個指標和乙個傀儡節點 用cur當游標遍歷鍊錶,當cur的值和cur.next的值相等時,prev不動...