合并两个有序链表
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *l3=new ListNode(0);
ListNode *head=l3;
while(l1&&l2)
{
if(l1->val<l2->val)
{
l3->next=l1;
l3=l3->next;
l1=l1->next;
}
else
{
l3->next=l2;
l3=l3->next;
l2=l2->next;
}
}
if(l1) l3->next=l1;
if(l2) l3->next=l2;
return head->next;
}
};
两数相加
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* l3=new ListNode(0);
ListNode* head=l3;
int num=0;
int add=0;
while(l1||l2)
{
int x=(l1!=NULL)?l1->val:0;
int y=(l2!=NULL)?l2->val:0;
num=x+y+add;
add=num/10;
num%=10;
ListNode* node=new ListNode(num);
l3->next=node;
l3=l3->next;
if(l1) {l1=l1->next;}
if(l2) {l2=l2->next;}
}
if(add>0)
{
l3->next=new ListNode(add);
}
return head->next;
}
};
参考:https://leetcode-cn.com/problems/merge-two-sorted-lists/solution/jian-dan-de-liang-chong-ban-fa-by-dong-dong-da-ren/
https://zhuanlan.zhihu.com/p/38094131