leetcode刷題 資料結構(1) 鍊錶

2021-10-03 03:20:32 字數 2405 閱讀 8536

鍊錶

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 年的世界數學家大會上公布了這個猜...

資料結構刷題 剪枝

在刷題中會遇到,比如二叉樹問題中會遇到剪枝的問題,我們需要,研究一下什麼是剪枝 剪枝可謂是搜尋的靈魂所在,我們知道搜尋是個愣頭青小伙,一路撞到底可能都撞不到答案,他還可能要撞很多次。所以有什麼方法可以讓他撞的次數少一點呢?我們知道搜尋會形成乙個搜尋樹,這其中有很多的枝杈,但是他們中許多其實是無用或者...