首页 > 代码库 > 【LeetCode】Merge Two Sorted Lists
【LeetCode】Merge Two Sorted Lists
题目
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
解答
注意假的头结点的运用,代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } ListNode mergeHead=null; if(l1.val<l2.val){ mergeHead=l1; l1=l1.next; // mergeHead.next=null; //可要可不要,之后节点会更新 }else{ mergeHead=l2; l2=l2.next; // mergeHead.next=null; } ListNode cur=mergeHead; while(l1!=null&&l2!=null){ if(l1.val<l2.val){ cur.next=l1; l1=l1.next; cur=cur.next; // cur.next=null; }else{ cur.next=l2; l2=l2.next; cur=cur.next; // cur.next=null; } } if(l1!=null){ cur.next=l1; }else if(l2!=null){ cur.next=l2; } return mergeHead; } } //利用假的头结点的简化版public class Solution{ public ListNode mergeTwoLists(ListNode l1,ListNode l2){ ListNode p1=l1; ListNode p2=l2; ListNode fakeHead=new ListNode(-1); //引入一个假的头结点 ListNode p=fakeHead; while(p1!=null&&p2!=null){ if(p1.val<p2.val){ p.next=p1; p1=p1.next; }else{ p.next=p2; p2=p2.next; } p=p.next; } if(p1!=null){ p.next=p1; } if(p2!=null){ p.next=p2; } return fakeHead.next; } }
---EOF---
【LeetCode】Merge Two Sorted Lists
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。