分析和思路:使用map儲存每個節點的個數,大於1的個數鍊錶不建立,其他的重新建立,這個方法的缺點是用了o(n)的空間。
1/*2之前寫的乙個不用o(n)空間的,寫的比較冗餘,可讀性比較差。struct listnode 8};
9*/10 #include "
iostream
"11 #include 12
using
namespace
std;
13//
思路,先遍歷整個鍊錶,如果重複數量大於 1的都記錄下來,然後再建立乙個新的鍊錶返回即可
1415
1617
1819
class
solution
27 listnode* temp =null;
28 temp =phead;
29while (temp !=null)
3034
35 listnode* pheadback =phead;
36 temp =phead;
37while (temp!=null&&m[temp->val] > 1)38
41if(temp==null)
4245 pheadback =temp;
46 phead =temp;
47 temp = temp->next;
48 listnode*new;
49while (temp !=null)
5056
else
5767}68
return
pheadback;
6970
}71 };
1/*2struct listnode 8};
9*/1011
class
solution
19bool flag = false
;20 listnode* q =phead;
21bool find_flag = false
;22 listnode* back = (listnode*)malloc(sizeof
(listnode));
2324
25if( phead->next!=null)
263435}
36else
3740
41while(q->next!=null)
4250
51if (q->val != q->next->val)
5258
else
5964
65 find_flag = true;66
//free(q) 釋放節點
67continue;68
}69}70
if (flag == true)71
79else
80return phead->next;81}
82else
838687}
88 };
鍊錶演算法 刪除重複節點
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 public class listnode public listnode deleteduplication listnode phead l...
刪除鍊錶的重複節點
思路 就是找到不重複出現的節點,然後連線到新鍊錶上面 反思 在連線節點到新鍊錶的時候,每次都要把尾部節點的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...