鍊錶 合併兩個有序鍊錶

2021-09-23 10:35:32 字數 1518 閱讀 2135

標籤:鍊錶

題目描述

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

解題思路

兩種解法:遞迴和非遞迴 拓展

參考**

public listnode merge(listnode list1, listnode list2) else 

}

//非遞迴

public listnode merge2(listnode list1, listnode list2) else

//為什麼要放在外面,迴圈要終止

list1 = list1.next;

}else else

list2 = list2.next;

} }if(list1 == null)

current.next = list2;

if(list2 == null)

current.next = list1;

return mergehead;

}

public listnode merge3(listnode list1,listnode list2) else

}while(list2!=null && list1!=null && list2.val < list1.val)else

}

}if(list1 != null)

last.next = list1;

if(list2 != null)

last.next = list2;

return head;

}

//非遞迴

public listnode merge4(listnode list1, listnode list2) else

//當前節點,永遠在比較的兩個節點前,非空

listnode current = mergehead;

while(list1!=null && list2!=null) else

current = current.next;

} if(list1 == null)

current.next = list2;

if(list2 == null)

current.next = list1;

return mergehead;

}

public listnode merge5(listnode list1, listnode list2) else

current = current.next;

} if(list1 == null)

current.next = list2;

if(list2 == null)

current.next = list1;

return mergehead.next;

}

鍊錶 兩個有序鍊錶的合併

題目要求 本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。函式介面定義 list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode...

鍊錶 21 合併兩個有序鍊錶

題目 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 解體方法 暴力法和遞迴 暴力法思路 首先鍊錶這種資料結構是乙個只能從頭訪問的,本題中,因為兩個鍊錶中的頭節點都要先進行比較之後才能確...

LeetCode 鍊錶 合併兩個有序鍊錶

將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 使用迭代。如下 definition for singly linked list.struct listnode listnode ...