题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
class Solution {
public:
ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {
ListNode *l = new ListNode(-1);
ListNode *p = l;
while (list1 && list2) {
if (list1->val < list2->val) {
p->next = list1;
list1 = list1->next;
p = p->next;
} else {
p->next = list2;
list2 = list2->next;
p = p->next;
}
}
if (list1) {
p->next = list1;
} else if (list2) {
p->next = list2;
} else
p->next = NULL;
return l->next;
}
};
小结:思路简单,注意头结点边界即可