六、劍指 Offer(25~29)
一、25 合併兩個排序的連結串列
1.演算法描述
輸入兩個遞增排序的連結串列,合併這兩個連結串列並使新連結串列中的節點仍然是遞增排序的。
2.演算法題解
根據連結串列 l1、l2 是遞增的,因此可以使用雙指標遍歷連結串列,根據 val1、val2 的大小關係確定節點新增順序,兩指標交替前進,直至遍歷完成。
由於初始狀態合併連結串列中無節點,因此需要初始化一個輔助節點 root 作為合併連結串列的偽頭結點。
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode root = new ListNode(0), cur = root;
while (l1 != null && l2 != null) {
if (l1.val < l2.val) {
cur.next = l1;
l1 = l1.next;
} else {
cur.next = l2;
l2 = l2.next;
}
cur = cur.next;
}
cur.next = l1 != null ? l1 : l2;
return root.next;
}
}
一、26 樹的子結構
1.演算法描述
輸入兩棵二叉樹A和B,判斷B是不是A的子結構。(約定空樹不是任意一個樹的子結構)
B是A的子結構, 即 A中有出現和B相同的結構和節點值。
2.演算法題解
一、25 合併兩個排序的連結串列
1.演算法描述
輸入兩個遞增排序的連結串列,合併這兩個連結串列並使新連結串列中的節點仍然是遞增排序的。
2.演算法題解
相關文章
- 劍指OFFER
- 力扣 - 劍指 Offer 29. 順時針列印矩陣力扣矩陣
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- 劍指 Offer 29-順時針列印矩陣c++矩陣C++
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指offer16
- 劍指 offer20
- 劍指 offer21
- 劍指Offer題解合集
- 【劍指Offer】矩形覆蓋
- 劍指offer——跳臺階
- 劍指offer-JavaScript版JavaScript
- 劍指offer刷題記錄
- 劍指offer-第2章
- 劍指offer第41~50題
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指offer】【2】字串的空格字串
- 劍指 Offer 25. 合併兩個排序的連結串列 JavaScript實現排序JavaScript
- 劍指 Offer 38. 字串的排列字串
- 《劍指 Offer》棧實現佇列佇列
- 劍指offer刷題day02
- LeetCode|劍指 Offer 49.醜數LeetCode
- 劍指offer第49題 醜數
- 劍指offer——重建二叉樹二叉樹
- 劍指Offer 表示數值的字串字串
- 劍指Offer 撲克牌順子
- 【劍指offer】2.替換空格
- 劍指offer-替換空格02
- 劍指offer解析-上(Java實現)Java
- 劍指offer解析-下(Java實現)Java
- 劍指offer 變態跳臺階
- mysql 索引十連問| 劍指 offer - mysqlMySql索引
- 秒殺劍指offer系列(41-50)
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 劍指offer之順序列印陣列陣列
- 劍指offer(四)重建二叉樹二叉樹
- 劍指offer——斐波那契數列