合併兩個排序的鍊錶
輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。
示例1:
輸入:1->2->4, 1->3->4輸出:1->1->2->3->4->4
public listnode mergetwolists(listnode l1, listnode l2) else
r=r.next;
}r.next=l1==null?l2:l1;
return dummy.next;
}
遞迴形式:
public listnode mergetwolists(listnode l1, listnode l2)
if(l2==null)
listnode head;
if(l1.val<=l2.val) else
}
反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
示例:
輸入:1->2->3->4->5->null輸出:5->4->3->2->1->null
public listnode reverselist(listnode head)
return newhead;
}
遞迴形式
public listnode reverselist(listnode head)
listnode p = reverselist(head.next);
head.next.next = head;
head.next = null;
return p;
}
鍊錶問題 合併兩個排序鍊錶
題目 輸入兩個遞增排序的鍊錶,合併這兩個排序鍊錶,使得合併之後的鍊錶仍然使遞增排序的。分析 即是歸併排序中的歸併操作,有兩種具體的實現 1 使用遞迴的方法,2 迭代版本,逐個合併鍊錶。實現如下 struct listnode 遞迴版本 listnode merge listnode phead1,l...
劍指Offer 反轉鍊錶 合併兩個排序的鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。之前在leetcode寫過 leetcode 鍊錶逆置 struct listnode class solution return pre 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。之前在leetcode...
25 鍊錶 反轉單鏈表 合併兩個排序的鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。public class listnode public class solution return prior 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。先確定頭節點,之後根據兩個鍊錶第乙個節點的大小,按...