问题描述
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。
解决方案
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *mergeTwoLists(ListNode *left, ListNode *right) {
if(left == NULL)return right;
if(right == NULL)return left;
ListNode* dummy = new ListNode(0);
ListNode* newnode = dummy;
while(left!=NULL && right!=NULL){
if(left->val > right->val){
newnode->next = right;
right = right->next;
}
else{
newnode->next = left;
left = left->next;
}
newnode=newnode->next;
}
if(left == NULL){
newnode->next = right;
}
if(right == NULL){
newnode->next = left;
}
return dummy->next;
}
};