21. 合并两个有序链表

x33g5p2x  于2021-09-19 转载在 其他  
字(0.4k)|赞(0)|评价(0)|浏览(393)

描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
*
示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

解题思路

利用归并排序的思想就OK了
归并排序
可以迭代也可以递归,不过时间复杂度是相同的,不同的是迭代空间用的稍微少一点应该。

代码

  1. class Solution {
  2. public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
  3. ListNode head=new ListNode();
  4. ListNode temp=head;
  5. while(l1!=null && l2!=null){
  6. if(l1.val<l2.val){
  7. temp.next=l1;
  8. l1=l1.next;
  9. }else{
  10. temp.next=l2;
  11. l2=l2.next;
  12. }
  13. temp=temp.next;
  14. }
  15. temp.next=l1==null?l2:l1;
  16. return head.next;
  17. }
  18. }

相关文章