鍊錶
1. 找出兩個鍊錶的交點
第一次可做出,
解法可優化
※2. 鍊錶反轉
遞迴/迭代 兩種方法
※3. 歸併兩個有序的鍊錶
可做出經典題型,兩種方法需掌握
※4. 從有序鍊錶中刪除重複節點
第一次可做出ok
5. 刪除鍊錶的倒數第 n 個節點
第一次可做出ok
6. 交換鍊錶中的相鄰結點
思考後可做出
解法可簡化
※7. 鍊錶求和
第一次未做出
※8. 回文鍊錶
思考後可做出
解法可簡化
※9. 分隔鍊錶
思考後可做出ok
10. 鍊錶元素按奇偶聚集
思考後可做出
鍊錶是空節點,或者有乙個值和乙個指向下乙個鍊錶的指標,因此很多鍊錶問題可以用遞迴來處理。
160. intersection of two linked lists (easy)
法一:
class solution
while(heada!=headb)
return headb;
}};法二:技巧性強
當訪問 a 鍊錶的指標訪問到鍊錶尾部時,令它從鍊錶 b 的頭部開始訪問鍊錶 b;同樣地,當訪問 b 鍊錶的指標訪問到鍊錶尾部時,令它從鍊錶 a 的頭部開始訪問鍊錶 a。這樣就能控制訪問 a 和 b 兩個鍊錶的指標能同時訪問到交點。
/** * definition for singly-linked list.
* struct listnode
* };
*/class solution
return pa;
}};
206. reverse linked list (easy)
1. 遞迴
/** * definition for singly-linked list.
* struct listnode
* };
*/class solution
};2. 迭代
class solution
return res;
}};
21. merge two sorted lists (easy)
1. 遞迴
class solution else
}};2. 迭代
class solution else
pl=pl->next;
}pl->next=(l1==null)?l2:l1;
return l->next;
}};
83. remove duplicates from sorted list (easy)
19. remove nth node from end of list (medium)
24. swap nodes in pairs (medium)
class solution
return res->next;
}};
445. add two numbers ii (medium)
class solution
return st;
}listnode* addtwonumbers(listnode* l1, listnode* l2)
if(!st2.empty())
listnode *pn=new listnode(carry%10);
pn->next=res->next;
res->next=pn;
carry/=10;
}return res->next;
}};
234. palindrome linked list (easy)
題目要求:以 o(1) 的空間複雜度來求解。
切成兩半,把後半段反轉,然後比較兩半是否相等。
class solution
return rev;
}bool ispalindrome(listnode* head)
listnode *last=reverselist(slow);
while(last!=null)
return true;
}};
725. split linked list in parts(medium)
328. odd even linked list (medium)
class solution
return head;
}};
LeetCode刷題 C 資料結構
定義 definition for singly linked list.struct listnode listnode int x val x next nullptr listnode int x,listnode next val x next next listnode node list...
資料結構刷題day1
pat乙級原來和資料結構錘子關係都沒有啊,但我沒寫過c語言,就當學c了。卡拉茲 callatz 猜想 對任何乙個正整數 n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到 n 1。卡拉茲在 1950 年的世界數學家大會上公布了這個猜...
資料結構刷題 剪枝
在刷題中會遇到,比如二叉樹問題中會遇到剪枝的問題,我們需要,研究一下什麼是剪枝 剪枝可謂是搜尋的靈魂所在,我們知道搜尋是個愣頭青小伙,一路撞到底可能都撞不到答案,他還可能要撞很多次。所以有什麼方法可以讓他撞的次數少一點呢?我們知道搜尋會形成乙個搜尋樹,這其中有很多的枝杈,但是他們中許多其實是無用或者...