[leetcode]21. Merge Two Sorted Lists
2016-10-19 20:39
429 查看
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.
直接上代码了。
java
/**
* 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&&l2==null)
{
return null;
}
if(l1==null)
{
return l2;
}
if(l2==null)
{
return l1;
}
ListNode cur=null,head=null;
ListNode node1=l1,node2=l2;
while(node1!=null&&node2!=null)
{
if(node1.val<node2.val)
{
if(cur==null)
{
cur=node1;
}
else
{
cur.next=node1;
cur=node1;
}
node1=node1.next;
}
else
{
if(cur==null)
{
cur=node2;
}
else
{
cur.next=node2;
cur=node2;
}
node2=node2.next;
}
}
while(node1!=null)
{
cur.next=node1;
cur=node1;
node1=node1.next;
}
while(node2!=null)
{
cur.next=node2;
cur=node2;
node2=node2.next;
}
if(l1.val<l2.val)
{
return l1;
}
else
{
return l2;
}
}
}
golang
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil && l2 == nil{
return nil
}
if l1==nil{
return l2
}
if l2 == nil{
return l1;
}
var head,cur *ListNode
for l1!=nil&&l2!=nil{
if l1.Val<l2.Val{
if head == nil{
head = l1
cur = l1
}else{
cur.Next = l1
cur=cur.Next
}
l1=l1.Next
}else{
if head == nil{
head = l2
cur = l2
}else{
cur.Next = l2
cur=cur.Next
}
l2=l2.Next
}
}
if l1!=nil{
cur.Next=l1
}
if l2!=nil{
cur.Next=l2
}
return head
}
直接上代码了。
java
/**
* 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&&l2==null)
{
return null;
}
if(l1==null)
{
return l2;
}
if(l2==null)
{
return l1;
}
ListNode cur=null,head=null;
ListNode node1=l1,node2=l2;
while(node1!=null&&node2!=null)
{
if(node1.val<node2.val)
{
if(cur==null)
{
cur=node1;
}
else
{
cur.next=node1;
cur=node1;
}
node1=node1.next;
}
else
{
if(cur==null)
{
cur=node2;
}
else
{
cur.next=node2;
cur=node2;
}
node2=node2.next;
}
}
while(node1!=null)
{
cur.next=node1;
cur=node1;
node1=node1.next;
}
while(node2!=null)
{
cur.next=node2;
cur=node2;
node2=node2.next;
}
if(l1.val<l2.val)
{
return l1;
}
else
{
return l2;
}
}
}
golang
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil && l2 == nil{
return nil
}
if l1==nil{
return l2
}
if l2 == nil{
return l1;
}
var head,cur *ListNode
for l1!=nil&&l2!=nil{
if l1.Val<l2.Val{
if head == nil{
head = l1
cur = l1
}else{
cur.Next = l1
cur=cur.Next
}
l1=l1.Next
}else{
if head == nil{
head = l2
cur = l2
}else{
cur.Next = l2
cur=cur.Next
}
l2=l2.Next
}
}
if l1!=nil{
cur.Next=l1
}
if l2!=nil{
cur.Next=l2
}
return head
}
相关文章推荐
- LeetCode 21. Merge Two Sorted Lists
- Leetcode: 21. Merge Two Sorted Lists
- 【leetcode】21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- [leetcode] 21. Merge Two Sorted Lists
- Leetcode -- 21. Merge Two Sorted Lists
- leetcode --21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists
- Leetcode 21. Merge Two Sorted Lists
- leetcode-21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- 【一天一道LeetCode】#21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- leetcode题解-21. Merge Two Sorted Lists
- 【一天一道LeetCode】#21. Merge Two Sorted Lists
- [LeetCode]21. Merge Two Sorted Lists