您的位置:首页 > 其它

LeetCode-21- Merge Two Sorted Lists(合并两个已排序链表)

2017-07-23 17:08 696 查看
Q:

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.

Analysis:

题目简单,合并两个已排序的链表。需要注意的是,若有相同的元素,并没说要删除,需要“一次链接两个相同元素”。

Code:

/**
* Definition for singly-linked list.
* public class ListNode {
*     int val;
*     ListNode next;
*     ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) {
return l2;
}
if (l2 == null) {
return l1;
}

ListNode result = new ListNode(0);
ListNode h=result;//指向链表的头节点不变
while (l1 != null && l2 != null) {
if(l1.val<l2.val){
result.next=l1;
l1=l1.next;
}else{
result.next=l2;
l2=l2.next;
}
result=result.next;
}
//判断链表长度不相同时候的剩余部分,将剩余部分连接到最终的链表中
if(l1!=null){
result.next=l1;
}else if(l2!=null){
result.next=l2;
}
return h.next;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: