給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。
示例 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...