由于这边的l1跟l2的长度可能不一样,所以说我们处理的时候呢就是说必须得遍历到它们俩都不为空为止,所以的话我们这里推荐一个用一个大的while循环,就是这里 classSolution {public://carry(进位),长度不一ListNode* addTwoNumbers(ListNode* l1, ListNode*l2) { ListNode* head =newListNode(-1);//哨兵//ListN...
cur 指针位置随着赋值而更新,但是dummy指针位置不变。 classSolution(object):defaddTwoNumbers(self,l1,l2):""":type l1: ListNode:type l2: ListNode:rtype: ListNode"""carry=0cur=dummy=ListNode(0)#遍历l1, l2 链表,并依次赋值给cur 节点whilel1orl2:ifl1andl2:ifl1.val+l2.val+carry>=10:cur.nex...
leecode上运行: Runtime: 20 ms, faster than 70.9% of C++ online submissions for Add Two Numbers. Memory Usage: 70.9 MB, less than 93.67% of C++ online submissions for Add Two Numbers. 两次结果对比 发现memory并没有减少很多,但是从百分比来看还是有一定提升的,可能测试的数据量不是很大。
ListNode next){this.val = val; this.next = next;}*}*/publicListNodeaddTwoNumbers(ListNodel1,ListNodel2){ListNodedummy=newListNode(0);// 创建一个虚拟头节点ListNodecurrent=dummy;// 指针指向虚拟头节点intcarry=0;// 进位标志while(l1!=null||l2!=null){intx=l1!=...
3 输入与输出:/*** 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) { }};4 解决思路:从表头开始相加,记录每次相加...
LeetCode.2-两个数字相加(Add Two Numbers) 这是悦乐书的第340次更新,第364篇原创01 看题和准备今天介绍的是LeetCode算法题中Medium级别的第1题(顺位题号是2)。给定两个非空链表,表示两个非负整数。 数字以相反的顺序存储,每个节点包含一个数字。将两个数字相加并将其作为链表返回。你可以假设这两个数字...
public static ListNode addTwoNumbers(ListNode l1,ListNode l2) { //如果都为空 直接返回不为空的一个参数 如果都未空 则返回空 if(l1 == null || l2 == null){ return l1 == null ?(l2 == null ?null:l2):l1; } //返回值 ListNode ret = new ListNode(0); ...
{public:ListNode*addTwoNumbers(ListNode*l1,ListNode*l2){if(l1==nullptr){returnl2;}if(l2==nullptr){returnl1;}intsum=0;ListNode*head=newListNode(0);ListNode*cur=head;while(1){if(l1!=nullptr){sum+=l1->val;l1=l1->next;}if(l2!=nullptr){sum+=l2->val;l2=l2->next;}cur->val=sum%...
Add Two Numbers 方法一: 考虑到有进位的问题,首先想到的思路是: 先分位求总和得到 totalsum,然后再将totalsum按位拆分转成链表; 代码语言:javascript 复制 1ListNode*addTwoNumbers(ListNode*l1,ListNode*l2){2int sum=0;3int i=1;4while(l1!=NULL&&l2!=NULL)5{6sum+=i*(l1->val+l2->val);7i*=10...
publicclassSolution{publicListNodeaddTwoNumbers(ListNodel1,ListNodel2){ListNodep1=l1;ListNodep2=l2;ListNodehead=newListNode(0);ListNodep=head;intcarry=0;intsum=0;intlocal=0;while(p1!=null&&p2!=null){sum=p1.val+p2.val+carry;local=sum%10;p.next=newListNode(local);p=p.next;carry=sum/10;...