LeetCode Merge Two Sorted Lists

来源:互联网 发布:linux查看系统字体设置 编辑:程序博客网 时间:2024/06/07 14:11

题意:合并两个已排好链表,使其也是排好序的

思路:

在遍历两个链表时,比较当前两个结点的值,总是选择最小结点到新链表中,同时最小结点所在的链表中的结点移动到下一个

代码如下:

class ListNode{    int val;    ListNode next;    ListNode(int x) { val = x;}}class Solution{    public ListNode mergeTwoLists(ListNode l1, ListNode l2)    {        ListNode ans = null, tail = null;        ListNode p1 = l1, p2 = l2;        while (p1 != null && p2 != null)        {            if (p1.val < p2.val)            {                if (null == ans)                {                    ans = p1;                    tail = ans;                }                else                {                    tail.next = p1;                    tail = tail.next;                }                p1 = p1.next;            }            else            {                if (null == ans)                {                    ans = p2;                    tail = ans;                }                else                {                    tail.next = p2;                    tail = tail.next;                }                p2 = p2.next;            }        }        if (p1 != null)        {            if (null == ans) ans = p1;            else tail.next = p1;        }        else if (p2 != null)        {            if (null == ans) ans = p2;            else tail.next = p2;        }        return ans;    }}


0 0
原创粉丝点击