兩有序鍊錶的合併

2021-06-05 17:41:21 字數 536 閱讀 5419

已知兩個鍊錶head1和head2各自有序,請把它們合成乙個鍊錶依然有序。保留所有結點,即便大小相同

鍊錶節點結構

typedef struct node

node;

合併函式的介面為:

node* merge(node* head1,node* head2); 答:

node* merge(node* head1,node* head2)

else

node* te*** = head;

while(temp1 != null && temp2 != null)

else

} if(temp1 == null)

te***->next = temp2;

if(temp2 == null)

te***->next = temp1;

return head;//返回連線後的鍊錶 }

演算法思路是:定義乙個臨時頭結點指標,然後分別遍歷另外兩個鍊錶,串聯成乙個鍊錶,注意的是:兩鍊錶其中乙個為空和兩個長度不等的情況。

鍊錶 合併兩個有序鍊錶

標籤 鍊錶 題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 兩種解法 遞迴和非遞迴 拓展 參考 public listnode merge listnode list1,listnode list2 else 非遞迴 public li...

鍊錶 兩個有序鍊錶的合併

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

合併兩個有序鍊錶

鍊錶的題目總是讓我很惆悵。動輒就會runtime error。比如這題,額外用了乙個節點的空間來儲存頭節點。我很不情願多用這個空間,不過貌似不行。貌似不行,實際可行,見附錄。把頭節點提出迴圈 實現類 class solution else if l1 null p next l1 if l2 nul...