LeetCode T2
Posted Runs Deep
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode T2相关的知识,希望对你有一定的参考价值。
使用依次相加,记录进位的方式进行运算,下面是我的解答,leetcode上运行耗时20ms,内存占用7.3MB
struct ListNode{ int val; struct ListNode *next; };
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ struct ListNode *p1,*p2; p1=l1;p2=l2; struct ListNode *head=(struct ListNode *)malloc(sizeof(struct ListNode)); head->next=NULL; struct ListNode *q=head; int flag_pre=0,flag_this=0;//用来记录进位 while(p1 || p2){ int tmp=0; if(p1==NULL && p2) tmp=p2->val+flag_pre; else if(p2==NULL && p1) tmp=p1->val+flag_pre; else tmp=p1->val+p2->val+flag_pre; flag_pre=0; if(tmp>=10){ flag_this=1; flag_pre=1; }; struct ListNode *tail=(struct ListNode *)malloc(sizeof(struct ListNode)); tail->val=tmp-flag_this*10; flag_this=0; tail->next=NULL; q->next=tail; q=q->next; if(p1) p1=p1->next; if(p2) p2=p2->next; } if(!(p1&&p2) && flag_pre==1){ struct ListNode *tail=(struct ListNode *)malloc(sizeof(struct ListNode)); tail->val=1; tail->next=NULL; q->next=tail; q=q->next; } return head->next; }
以上是关于LeetCode T2的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# LeetCode程序员面试金典:检查子树
[Leetcode] Merge Two Binary Trees
leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段