83 刪除排序鍊錶中的重複元素

2022-07-02 13:36:08 字數 1020 閱讀 5262

給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。

示例 1:

輸入: 1->1->2

輸出: 1->2

示例 2:

輸入: 1->1->2->3->3

輸出: 1->2->3

我寫的錯誤**:

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode* deleteduplicates(struct listnode* head)

else

return head->next;

}

報的錯:

記憶體無法列印,可能是存在野指標的問題

修改後正確的**:

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode* deleteduplicates(struct listnode* head)

else

}return head;

}

主要問題分析:

頭指標是表示當前鍊錶資訊的沒有實際意義的節點,而首節點是鍊錶中第乙個含有實際意義的值

有乙個問題就是什麼時候需要宣告節點,什麼時候直接使用還是沒搞清楚

把上面直接使用節點變成下面這句話的時候,就會報錯,說明*p節點是不需要重新申請就可以直接使用的

這個錯誤需要搞清楚:

我的理解是這樣的,*p是新申請的指標變數,他指向的是鍊錶的頭結點,所以無需新分配位址空間。

如果以後看的鍊錶東西多了,目前的結論被推翻了,那就回來再修改一下

83 刪除排序鍊錶中的重複元素

給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 看了下執行時間最快的演算法,分析了一下,leetcode程式設計都不注意記憶體 的嘛,以空間換時間 好像不是一般我們說的空間換時間演算法哈。記...

83 刪除排序鍊錶中的重複元素

題目 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2輸出 1 2示例 2 輸入 1 1 2 3 3輸出 1 2 3思路 首先判斷head或者head next為空指標,如果是返回head 不是的話,1.使用兩個listnode指標p和q,p初始化為head,...

83 刪除排序鍊錶中的重複元素

給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。輸入 1 1 2輸出 1 2輸入 1 1 2 3 3輸出 1 2 3設定乙個cur指標指向當前結點,再設定乙個next指標指向當前結點的下乙個結點。設定乙個while迴圈使得next.val的值跟cur.val的值不相等,將cur和nex...