日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode篇之链表:83(去重问题)

發(fā)布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode篇之链表:83(去重问题) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

@TOC

83.刪除排序鏈表中的重復(fù)元素:

題目:

解題思路:

1. 判斷head指針的情況:當(dāng)head指針為空時,即鏈表為空,就沒有必要  進(jìn)行后續(xù)判斷了;當(dāng)head指針的后繼節(jié)點(diǎn)為空時,說明鏈表只有一個  節(jié)點(diǎn)head,直接返回head即可
2. 判斷邊界條件判斷:當(dāng)p->next->next == NULL時,即最后倆個節(jié)點(diǎn)進(jìn)  行比較時,若用p->next = p->next->next進(jìn)行去重操作,會出現(xiàn)空指針  的問題。
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; }

踩坑點(diǎn):

1.空指針問題:

當(dāng)使用q = p->next時,測試結(jié)果正確,但是提交后會產(chǎn)生空指針錯誤

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* deleteDuplicates(struct ListNode* head){struct ListNode *p;struct ListNode *q;p = head;q = p->next;while(q != NULL){if(p->val == q->val){p->next = q->next;q = q->next;}else{p = p->next;q = q->next;}}return head; }

重要重要重要: 怎么解決小編也無能為力(其實(shí)小編是個渣渣,請叫我渣渣編),哪位大佬能解決請聯(lián)系小編或評論留言哈

總結(jié)

以上是生活随笔為你收集整理的LeetCode篇之链表:83(去重问题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。