class Solution {
public:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
ListNode *head = new ListNode(-1);//设置一个虚拟节点 / 特殊处理一下头节点
ListNode *end = head;
ListNode *first = l1;
ListNode *second = l2;
while (first != NULL && second != NULL) {
if (first->val <= second->val) {
end->next = first;
first = first->next;
} else {
end->next = second;
second = second->next;
}
end = end->next;
}
//l1 l2 和 first second的语意思不要搞错了 即这两对不要用错了
if (first != NULL)
end->next = first;
else if (second != NULL)
end->next = second;
ListNode* ret = head->next;
head->next = NULL;
delete head;
return ret;
}
};
自己吸取的教训
设置的变量语意要清楚,本题中就是不要将 l1 l2 和 first second这两对混用了,混用就说明自己对设置的l1 l2这两个索引了解的不太清楚