LeetCode篇之链表:83(去重问题)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode篇之链表:83(去重问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@TOC
83.刪除排序鏈表中的重復元素:
題目:
解題思路:
1. 判斷head指針的情況:當head指針為空時,即鏈表為空,就沒有必要 進行后續判斷了;當head指針的后繼節點為空時,說明鏈表只有一個 節點head,直接返回head即可
2. 判斷邊界條件判斷:當p->next->next == NULL時,即最后倆個節點進 行比較時,若用p->next = p->next->next進行去重操作,會出現空指針 的問題。
3. 鏈表中的去重操作用 p->next = p->next->next即可
源碼:
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* deleteDuplicates(struct ListNode* head){struct ListNode *p;p = head;if(head == NULL)return NULL;if(head->next == NULL)return head;while(p->next != NULL){if(p->val == p->next->val){p->next = p->next->next;}else{p = p->next;}}return head; }踩坑點:
1.空指針問題:
當使用q = p->next時,測試結果正確,但是提交后會產生空指針錯誤
重要重要重要: 怎么解決小編也無能為力(其實小編是個渣渣,請叫我渣渣編),哪位大佬能解決請聯系小編或評論留言哈
總結
以上是生活随笔為你收集整理的LeetCode篇之链表:83(去重问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栈的链式存储及常用操作
- 下一篇: C++中的抽象类及纯虚函数的实现与否