[LeetCode]Merge Two Sorted Lists

来源:互联网 发布:淘宝情趣用品 看不出来 编辑:程序博客网 时间:2024/06/05 20:08

题目:合并两个有序链表

算法:就地合并(不使用额外内存空间)

/** * 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) {        // emtpy list        if (null==l1 && null==l2) {        return null;        } else if (null == l1) {        return l2;        } else if (null == l2) {        return l1;        }        ListNode pa = l1;        ListNode pb = l2;        ListNode pc = null;        ListNode head = null;                if (pa.val <= pb.val) {        pc = pa;        pa = pa.next;        } else {        pc = pb;        pb = pb.next;        }        head = pc;                while (null!=pa && null!=pb) {        if (pa.val <= pb.val) {        pc.next = pa;        pa = pa.next;        } else {        pc.next = pb;        pb = pb.next;        }                pc = pc.next;        }        if (null == pa) {        pc.next = pb;        } else if (null == pb) {        pc.next = pa;        }                return head;    }}

1 0