LeetCode-Merge Two Sorted Lists

来源:互联网 发布:常用基因组数据库 编辑:程序博客网 时间:2024/06/05 14:47

直观的三个指针,两个在比较list

public class Solution {    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {        if ( l1 == null || l2 == null){            if ( l1 != null)                return l1;            else                return l2;        }        ListNode res = new ListNode(0);        ListNode p1 = l1;        ListNode p2 = l2;        ListNode resp = res;        while ( p1 != null && p2 != null){ <span style="color:#ff0000;">//这里一开始判断写错了,写成了p1.next != null...这样的话就忽略了最后一个</span>            if ( p1.val > p2.val){                resp.next = p2;                p2 = p2.next;            }            else{                resp.next = p1;                p1 = p1.next;            }            resp = resp.next;        }        if ( p1 != null )            resp.next = p1;        if ( p2 != null )            resp.next = p2;        return res.next;    }}


recursive:

class Solution {public:    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        if(l1 == NULL) return l2;        if(l2 == NULL) return l1;        if(l1->val < l2->val) {            l1->next = mergeTwoLists(l1->next, l2);            return l1;        } else {            l2->next = mergeTwoLists(l2->next, l1);            return l2;        }    }};


0 0
原创粉丝点击