標籤:鍊錶
題目描述
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
解題思路
兩種解法:遞迴和非遞迴 拓展
參考**
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 ...