原创 作業5.174:鏈表中倒數第n個節點

題目:鏈表中倒數第n個節點 樣例:給出鏈表3->2->1->5->null和n=2,返回倒數第二個節點的值1。 思路:首先排除空鏈表的情況,然後設定指針p,設定一個計數器count,先計算這個鏈表的節點數,如果節點數等於所求值n,返回

原创 138.子數組之和

題目: 給定一個整數數組,找到和爲零的子數組。你的代碼應該返回滿足要求的子數組的起始位置和結束位置 樣例: 給出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3]. 代碼:class Solution {

原创 作業6.174:刪除鏈表中倒數第n個節點

題目:刪除鏈表中倒數第n個節點 樣例:給出鏈表1->2->3->4->5->null和n=2。 刪除倒數第二個節點之後,這個鏈表將變成1->2->3->5->null。 思路:先設置一個計數器,把鏈表的長度計算出來,然後找到需要刪除的

原创 67.二叉樹的中序遍歷

題目:給出一棵二叉樹,返回其中序遍歷。 樣例: 給出二叉樹 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. 代碼:class Solution { /**

原创 作業7.165:合併兩個排序鏈表

題目:合併兩個排序鏈表 樣例:給出1->3->8->11->15->null和2->null,返回1->2->3->8->11->15->null。 思路:首先排除兩個鏈表都爲空的情況,然後如果有一條鏈表爲空,則返回另外那條。設置一條

原创 作業4.451:兩兩交換鏈表中的節點

題目:兩兩交換鏈表中的節點 樣例:給出1->2->3->4,你應該返回的是2->1->4->3。 思路:首先排除空鏈表和只有一個節點的鏈表。然後設定一個temp,兩兩交換節點,然後再令指針指向後一個的next,以免重複操作。 代碼:

原创 【數據結構】LintCode鏈表專題總結

作業完成情況: (不知道是不是網址的問題,我做了11個題,但是提交記錄裏並不全,還請老師見諒。) 總結: 鏈表這一章的知識點並不是很多。通過做這11道題可以發現,基本上都是從基礎知識上出發的,鏈表的結構在這些題中尤爲重要。 除了鏈

原创 作業11.167:鏈表求和

題目:鏈表求和 樣例:給出兩個鏈表3->1->5->null和5->9->2->null。返回8->0->8->null。 思路:首先寫出兩個鏈表中有空鏈表的情況。然後當兩個鏈表都不爲空時,相同位置的節點數相加,大於等於10時,對10

原创 作業2.112:刪除排序鏈表中的重複元素

題目:刪除排序鏈表中的重複元素 樣例:給出1->1->2->null,返回1->2->null。             給出1->1->2->3->3->null,返回1->2->3->null。 思路:在排序鏈表中,除去空鏈表和鏈

原创 作業1.452:刪除鏈表中的元素

題目:刪除鏈表中的元素 樣例:給出鏈表1->2->3->3->4->5->3,和val=3,你需要返回刪除3之後的鏈表:1->2->4->5->。 思路:除去空鏈表的情況,從頭節點開始遍歷,當遇到值爲val的節點時,使當前節點的前驅節

原创 作業10.173:鏈表插入排序

題目:鏈表插入排序 樣例:Given 1->3->2->0->null,return 0->1->2->3->null。 思路:設置一個新鏈表,從原始鏈表中逐一進行判斷插入到新鏈表中。 代碼: class Solution { pu

原创 作業3.372:在O(1)時間複雜度刪除鏈表節點

題目:在O(1)時間複雜度刪除鏈表節點 樣例:給定1->2->3->4,和節點3,刪除3之後,鏈表應該變爲1->2->4。 思路:將要刪除的節點的下一個節點的屬性複製到要刪除的節點上,會出現兩個屬性完全相同的節點,然後把下一個節點刪除

原创 作業8.96:鏈表劃分

題目:鏈表劃分 樣例: 給定1->4->3->2->5->2->null,並且x=3。 返回1->2->2->4->3->5->null。 思路:設置兩個新鏈表small和big,遍歷原始鏈表,小於x的元素放在small裏,大於x的元

原创 作業9.35:翻轉鏈表

題目:翻轉鏈表 樣例:給出一個鏈表1->2->3->null,這個翻轉後的鏈表爲3->2->1->null。 思路:設置兩個新的指針,然後通過三個指針的輪轉,完成翻轉。 代碼: class Solution { public:

原创 68.二叉樹的後序遍歷

題目:給出一棵二叉樹,返回其節點值的後序遍歷。 樣例: 給出一棵二叉樹 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 代碼: class Solution { /**