[leetcode]21. Merge Two Sorted Lists

来源:互联网 发布:mysql基本语句 编辑:程序博客网 时间:2024/06/06 13:12

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}



0 0
原创粉丝点击