鍊錶(刪除重複的節點)

2021-10-22 09:11:35 字數 873 閱讀 5570

/* 題目要求:

* 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,

* 重複的結點不保留,返回煉表頭指標。

* 例如,鍊錶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 採用遞迴的方法從下乙個不重複的點開...