刪除無序單鏈表中值重複出現的節點

2021-09-11 07:08:07 字數 888 閱讀 8959

【題目】給定乙個無序單鏈表的頭節點head,刪除其中值重複出現的節點。

例如:1->2->3->3->4->4->2->1->1->null,刪除值重複重複的節點之後為1->2->3->4->null。

請按以下要求實現兩種方法:

方法1:如果鍊錶長度為n,時間複雜度達到o(n)。

方法2:額外空間複雜度為o(1)

public

class

removerep

}// 時間複雜度o(n),空間複雜度o()

public

static

void

removerep1

(node head)

hashset

set =

newhashset

<

>()

; node pre = head;

node cur = head.next;

set.

add(head.value)

;while

(cur != null)

else

cur = cur.next;}}

// 時間複雜度o(n*n),空間複雜度o(1)

public

static

void

removerep2

(node head)

node cur = head;

node pre = null;

node next = null;

while

(cur != null)

else

next = next.next;

} cur = cur.next;}}

}

刪除無序單鏈表中值重複出現的節點

題目 給定乙個無序單鏈表的頭結點head,刪除其中值重複出現的節點。例如 1 2 3 3 4 4 2 1 1 null,刪除重複的節點之後為1 2 3 4 null。要求 方法1 時間複雜度o n 方法2 額外空間複雜度o 1 刪除無序單鏈表中值重複出現的節點 方法1 時間複雜度o n 額外空間複雜...

190507打卡 刪除無序單鏈表中值重複出現的節點

題目描述 給定乙個無序單鏈表的頭結點head,刪除其中值重複出現的節點。例如 1 2 3 3 4 4 2 1 1 null,刪除值重複出現的節點後為 1 2 3 4 null。要求 額外空間複雜度為o 1 思路 類似於選擇排序的過程,時間複雜度為o n n 額外空間複雜度為o 1 首先是頭結點,值為...

刪除有序鍊錶中重複出現的元素

給出乙個公升序排序的鍊錶,刪除鍊錶中的所有重複出現的元素,只保留原煉表中只出現一次的元素。例如 給出的鍊錶為1 2 3 3 4 4 5,返回1 2 5.給出的鍊錶為1 1 1 2 3,返回2 3.struct listnode class solution listnode phead new li...