You are given two linked lists representing two non-negative numbers. 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.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

解题思路:

定义三个ListNode l1、l2,result,其中result为return语句的输出,l1、l2为传入的参数。

将l1赋值给result,执行result.val+=l2.val,然后l1作为指针一级一级往下走,直到走到l2.next为null。当然,之间会有不少边界条件,自己debug一下就好。

Java代码如下:

public class Solution {
      static public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    	ListNode result=l1;
    	while(true){
    		l1.val+=l2.val;
    		if(l1.val>=10){
    			l1.val%=10;
    			if(l1.next==null) l1.next=new ListNode(1);
    			else l1.next.val+=1;
    		}

		if(l2.next==null){
			ListNode l3=l1.next;
			while(true){
				if (l3==null) break;
				if(l3.val==10){
					l3.val%=10;
	    			if(l3.next==null) l3.next=new ListNode(1);
	    			else l3.next.val+=1;
				}
				l3=l3.next;
			}
			break;
		}

    	l2=l2.next;
    	if(l1.next==null){
    		l1.next=new ListNode(0);
    	}
    	l1=l1.next;
    	}
    	return result;

    }
}

C++

 class Solution {
 public:
     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
         ListNode* res=l1;
         while (true) {
             l1->val += l2->val;
             ) {
                 l1->val %= ;
                 if (l1->next == NULL)
                     l1->next = );
                 ;
             }

             if (l2->next == NULL) {
                 ListNode* l3 = l1->next;
                 while (true) {
                     if (l3 == NULL) break;
                     ) {
                         l3->val %= ;
                         );
                         ;
                     }
                     l3 = l3->next;
                 }
                 break;
             }

             l2 = l2->next;
             if (l1->next == NULL) {
                 l1->next = );
             }
             l1 = l1->next;
         }
         return res;
     }
 };

【JAVA、C++】LeetCode 002 Add Two Numbers的更多相关文章

  1. 【JAVA、C++】LeetCode 005 Longest Palindromic Substring

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  2. 【JAVA、C++】LeetCode 022 Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  3. 【JAVA、C++】LeetCode 001 Two Sum

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  4. 【JAVA、C++】LeetCode 018 4Sum

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  5. 【JAVA、C++】LeetCode 017 Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  6. 【JAVA、C++】LeetCode 015 3Sum

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  7. 【JAVA、C++】LeetCode 010 Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  8. 【JAVA、C++】 LeetCode 008 String to Integer (atoi)

    Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...

  9. 【JAVA、C++】LeetCode 007 Reverse Integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 解题思路:将数字 ...

随机推荐

  1. Codeforces 271 Div 2 A Keyboard

    题目链接:http://codeforces.com/contest/474/problem/A 解题报告:一个矩形的键盘,上面只有规定的字符,现在按的时候总是会向某个方向按偏,也就是输入一串字符后, ...

  2. LIGHTSWITCH 连接 MYSQL,中文字符不能保存----解决方法。

    使用:dotConnect for MySQL () 作为 数据库连接的PROVIDER ,  在 LIGHTSWITCH 中 引用外部的MYSQL 数据源. http://www.devart.co ...

  3. CSS3混合模式background-blend-mode

    注意:background属性中的背景图片和颜色混合,只能在一个background属性中. 属性值: background-blend-mode: normal; //正常 background-b ...

  4. C#将字符串中间部分替换为*号

    在做商城评价的时候,为了显示评价的真实性同时保护客户的隐私,我们将用户昵称中间部分替换为*(如果是单字则替换为* 两个字符串第二位字符串替换为*)如下图 方法如下: /// <summary&g ...

  5. 不让padding影响元素的宽度

    CSS3 新增了 box-sizing 属性. 以前,如果指定 div 的宽度为 div { width: 100px; height: 100px; padding: 10px; } 则包含 pad ...

  6. java 形参实参

    java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. public class TestFun { public static v ...

  7. CGI相关概念

    common gateway interface 通用网关接口 可以让客户端从浏览器向执行在服务器上的程序请求数据.CGI描述了客户端和服务器程序之间传输数据的一种标准. 编程语言perl是一种被广泛 ...

  8. scjp考试准备 - 6 - 父类构造器的引用

    题一,如下代码的执行结果: class Person{ String name = "No name"; public Person(String nm){name = nm;} ...

  9. 03.Hibernate一对多关联

    前言:在域模型中,类与类之间最普遍的关系就是关联关系,在UML语言中关联关系是有方向的.在数据库中表与表之间也会有关联关系,本节介绍通过Hibernate映射一对多的关联关系,这是一种最普遍的关联关系 ...

  10. python 二分法查找

    这个也是之前写的程序,现在把它贴上来 #!/usr/bin/python import os os.system('clear') def binsearch(seq,x,low,high): mid ...