LeetCode第2题:add-two-numbers(C语言) 上一题:LeetCode第1题:two-sum(C语言) 1、基础方法 思路:判断两个链表是否存在,如果存在,则计算两个链表的的val之和,用plus记录上一次的进位,pre记录tail的父节点,用于在while循环结束的时候将结果链表尾部置空。 structListNode*addTwoNumbers(structListNode*l1,structLi...
}publicListNode AddTwoNumbers(ListNode l1, ListNode l2) { ListNode c1=l1; ListNode c2=l2; ListNode head=newListNode(0); ListNode p=head;intsum =0;while(c1!=null||c2!=null) { sum/=10;if(c1!=null) { sum+=c1.val; c1=c1.next; }if(c2!=null) { sum+=c2.val; c2=c2.next; }...
ListNode* addTwoNumbers(ListNode* l1, ListNode*l2) {intcur=0;intc=0; ListNode* root=newListNode(0); ListNode* res=root;while(l1 &&l2) { res->next=newListNode(0); res=res->next; cur=c+l1->val+l2->val; c=cur/10; cur=cur%10; res->val=cur; l1=l1->next; l2=l2->next; }...
刷题之路第二题--Add Two Numbers 陈zq关注IP属地: 四川 2019.04.07 09:20:52字数612阅读221 问题简介:输入两个数字链表,输出求和后的链表(链表由数字位数倒序组成) 问题详解: 给定两个非空链表,表示两个非负整数. 数字以相反的顺序存储,每个节点包含一位数字.对两个整数作求和运算,将结果倒序作为链表输出. ...
classNode(object):def__init__(self,x):self.val=xself.next=NoneclassSolution:defaddTwoNumbers(self,l1,l2):returnself.addTwoNumbersRecursive(l1,l2,0)# return self.addTwoNumbersIterative(l1, l2)defaddTwoNumbersRecursive(self,l1,l2,c):val=l1.val+l2.val+cc=val//10ret=Node(val%10)ifl1...
* You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do not contain any leading zero,...
Explanation:342 + 465 = 807. 代码如下: public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode c1 = l1; ListNode c2 = l2; ListNode sentinel = new ListNode(0); ListNode d = sentinel; int sum = 0; ...
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...
class Solution(object): def addTwoNumbers(self, l1, l2): head = ListNode(0) ptr = head carry = 0 while True: if l1 != None: carry += l1.val l1 = l1.next if l2 != None: carry += l2.val l2 = l2.next ptr.val = carry % 10 carry /= 10 # 运算未结束新建一个节点用于储...
add-two-numbers-ii 注意:有一种好的方法,是将链表倒转,然后依次相加。 但是,按照题目要求,用了不改变原链表的方法。 就是将两个链表增加到相同长度,然后递归相加,子函数返回后处理进位。 package com.company; import java.util.*; class ListNode {