力扣刷題對heap-use-after-free on address錯誤原因之一猜想
改題目是leetcode86:分隔連結串列的題解。
給定一個連結串列和一個特定值 x,對連結串列進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:
輸入: head = 1->4->3->2->5->2, x = 3
輸出: 1->2->2->4->3->5
程式碼的思路是將一個連結串列拆解成兩個連結串列begin和after,然後將兩個連結串列再連線起來,我在寫程式碼的時候,沒有將after連結串列的最後一個節點的指標置為空,此時報錯heap-use-after-free on address。加入了這句話after->next = nullptr;就通過了,因此百度一下。
百度之後發現:一篇部落格說的很有道理
為什麼連結串列的最後一個(尾節點)如果沒有rear->next=NULL;這個連結串列就會錯呢?
我來告訴你為什麼!
這個錯誤你已近犯了很多次,告訴你以後就不要在犯錯了
如果在單向連結串列中,最後一個節點沒有明確的指向的話
計算機既認為這個連結串列是沒有建立完全的,它是不會停止的。
所以我們在建造連結串列時一定要牢記,最後一個節點一定要有所指向
是頭結點形成迴圈連結串列也好,指向一個NULL值也好。
總而言之是不可以空著的!
記住了!
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode* before = new ListNode(0);
ListNode* before_head = before;
ListNode* after = new ListNode(0);
ListNode* after_head = after;
while(head){
if(head->val<x){
before->next = head;
before = before->next;
}
else{
after->next = head;
after = after->next;
}
head = head->next;
}
//該行如果不加會報錯heap-use-after-free
after->next = nullptr;
before->next = after_head->next;
return before_head->next;
}
};
相關文章
- 力扣刷題——2306. 公司命名力扣
- 2024.09.22 力扣刷題 Z字形變換力扣
- 力扣刷題:100. 相同的樹力扣
- 力扣刷題-二分查詢力扣
- 力扣刷題-滑動視窗(字串)力扣字串
- 力扣刷題Python筆記:括號生成力扣Python筆記
- 程式設計師如何玩轉力扣刷題?程式設計師力扣
- 力扣刷題筆記:207. 課程表力扣筆記
- 力扣 (LeetCode) - Database-刷題626--換座位力扣LeetCodeDatabase
- 力扣前1500道非會員題刷題筆記力扣筆記
- 力扣題解力扣
- python力扣刷題記錄——771. 寶石與石頭Python力扣
- python力扣刷題記錄——1470. 重新排列陣列Python力扣陣列
- 解決telnet: connect to address 127.0.0.1: Connection refused的錯誤資訊問題127.0.0.1
- 力扣刷題——2398. 預算內的最多機器人數目力扣機器人
- 力扣刷題——3096.得到更多分數的最少關卡數目力扣
- 力扣 (LeetCode) - Database-刷題183--從不訂購的客戶力扣LeetCodeDatabase
- python力扣刷題記錄——1614. 括號的最大巢狀深度Python力扣巢狀
- python力扣刷題記錄——1480. 一維陣列的動態和Python力扣陣列
- 力扣刷題——3007.價值和小於等於 K 的最大數字力扣
- 力扣工作周刷題 - 94. 二叉樹的中序遍歷力扣二叉樹
- 力扣題之迴文數力扣
- IllegalArgumentException:Unknown URL content 錯誤的原因Exception
- c++連結錯誤原因整理C++
- Can't Connect to MySQL Server on IP Address (10061) 錯誤的解決方案MySqlServer
- ERROR L107: ADDRESS SPACE OVERFLOW keil錯誤的解決方法Error
- 力扣---2020.7.30力扣
- 力扣---2020.9.27力扣
- 力扣---2020.9.29力扣
- 力扣---2020.9.28力扣
- 力扣---2020.9.3力扣
- 力扣---2020.9.4力扣
- 力扣-706. 設計雜湊對映力扣
- 力扣題解1-兩數之和力扣
- 力扣題解2-兩數相加力扣
- 【力扣】排列問題(回溯法)(去重)力扣
- 力扣 面試題 17.16. 按摩師力扣面試題
- 【刷力扣】1342. 將數字變成 0 的操作次數力扣