/* 題目要求:
* 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,
* 重複的結點不保留,返回煉表頭指標。
* 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5
* */
題解:先判空和長度是否為一
定義兩個指標和乙個傀儡節點
用cur當游標遍歷鍊錶,
①當cur的值和cur.next的值相等時,prev不動,cur指向他的下乙個
直到cur的值不等於cue.next 退出迴圈
prev.next = cur.next;
②當cur的值和cur.next的值不相等時
prev = cur;
cur = cur.next;
public listnode deleteduplication
(listnode phead)
listnode head =
newlistnode(0
);head.next = phead;
//傀儡節點
listnode prev = head;
// 前驅節點從傀儡節點開始
listnode cur = head.next;
//從第乙個節點開始
while
(cur != null)
// 不相同時,前驅指向cur的下乙個;
// cur指向它的下乙個
cur = cur.next;
prev.next = cur.next;
}else
}return head.next;
}
刪除鍊錶的重複節點
思路 就是找到不重複出現的節點,然後連線到新鍊錶上面 反思 在連線節點到新鍊錶的時候,每次都要把尾部節點的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...
鍊錶 刪除鍊錶中重複的節點
刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...