链表 Merge Two Sorted Lists

来源:互联网 发布:淘宝2016年营业额 编辑:程序博客网 时间:2024/06/06 01:56

思想:

创建虚拟头结点简便代码,一个一个串节点。


/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        if(l1 == NULL) return l2;        if(l2 == NULL) return l1;        ListNode *dummy = new ListNode(-1);        ListNode *p = dummy;        while(l1 != NULL && l2 != NULL) {            if(l1->val > l2->val) {                p->next = l2;                l2 = l2->next;            }else {                p->next = l1;                l1 = l1->next;            }            p = p->next;        }        if(l1 == NULL) {            p->next = l2;        }else if(l2 == NULL) {            p->next = l1;        }        return dummy->next;    }};

java:

/** * 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 res = new ListNode(-1);        ListNode p = res;        while(l1 != null && l2 != null) {            if(l1.val <= l2.val) {                p.next = l1;                l1 = l1.next;            }else {                p.next = l2;                l2 = l2.next;            }            p = p.next;        }                if(l1 != null) {            p.next = l1;        }        if(l2 != null) {            p.next = l2;        }                return res.next;    }}


0 0
原创粉丝点击