21 合併兩個有序鍊錶

2021-10-10 13:51:17 字數 680 閱讀 3116

解題思路

1.注意鍊錶為空的情況,此時傳入的結構體節點指標指向的為null,即節點不存在;並且此處的鍊錶是沒有頭節點的,因此空表不是頭節點的next域為空,而是節點指標為空。

2.其中合成新鍊錶可以以原鍊錶的第乙個節點為開始,無需重新malloc新空間。

3.在操作鍊錶時,通常讓乙個指標指向鍊錶的頭節點或第乙個節點,並且保持其不動,用來儲存鍊錶的位址,然後再用其賦值給另外乙個指標,這個指標用來對鍊錶進行操作。此處共有兩個鍊錶就是用l1和l2來儲存的,然後三個指標pa,pb,pc用來操作三個鍊錶,操作完後直接返回l1,l2即可。

**

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode*

mergetwolists

(struct listnode* l1,

struct listnode* l2)

else

} pc->next = pa ? pa : pb;

return l1;

}else

else

} pc->next = pa ? pa : pb;

return l2;}}

}

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 原本想的是用19題的結構陣列那種方法來做 分別遍歷兩個鍊錶,建立結構儲存原始索引,val和指標,氣泡排序這個結構,更新索引,按照索引建立新的n...

21 合併兩個有序鍊錶

合併兩個有序鍊錶 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4比較簡單,比較大小,重新排序即可。created by hints on 2019 1 9.include using name...

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...