博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4. Add Two Numbers
阅读量:4962 次
发布时间:2019-06-12

本文共 2199 字,大约阅读时间需要 7 分钟。

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

---

Solution1: iterative

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {                ListNode rstHead = new ListNode(0);        ListNode rst = rstHead;        int carry = 0;                while(l1 != null || l2 != null || carry != 0){                        int val = carry;            if(l1!=null) val+=l1.val;            if(l2!=null) val+=l2.val;                        ListNode node = new ListNode(val % 10);                        rst.next = node;            rst = rst.next;                        carry = val / 10;            if(l1!=null) l1 = l1.next;            if(l2!=null) l2 = l2.next;                    }                return rstHead.next;            }}

 

Solution2: Recursive

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {                return helper(l1, l2, 0);            }        public ListNode helper(ListNode n1, ListNode n2, int carry) {        if (n1 == null && n2 == null && carry == 0)            return null;        ListNode node;        int val = carry;                if (n1 != null)            val += n1.val;        if (n2 != null)            val += n2.val;                node = new ListNode(val % 10);                // recursive        if(n1 != null || n2 != null || val > 10){            if(n1 != null)                n1 = n1.next;            if(n2 != null)                n2 = n2.next;            ListNode nextNode = helper(n1,n2, val/10);            node.next = nextNode;        }        return node;    }}

 

转载于:https://www.cnblogs.com/ycled/p/3288901.html

你可能感兴趣的文章
brew+mac安装mysql+密码_Mac brew install mysql8.0+ 修改登陆密码
查看>>
python匹配一个目录下的文件名_python实现目录下文件名匹配的进行迁移
查看>>
python爬虫需要学哪些东西_Python爬虫需要学习那些东西?
查看>>
cm中使用mysql_mysql中limit用法
查看>>
python 过采样 权重实现_科学网—[转载]python抽样方法详解及实现 - 张书会的博文...
查看>>
字符间距加宽5磅怎么设置_如何设置将word文档的字符间距加宽
查看>>
安卓版本发布之后遇到bug怎么办_率先更新安卓7.0,可是有些bug真是令人头疼
查看>>
antd 给input设置值_AntD Input onChange 中文输入法
查看>>
java计时器_Java实现的计时器【秒表】功能示例
查看>>
查看java线程_【JAVA】Java线程堆栈信息查看
查看>>
java ajax导出excel_java中利用poi生成excel,在页面中如何使用ajax提交请求?
查看>>
java threadlocal 缺点_并发编程中ThreadLocalRandom的正确使用方式
查看>>
usr java_安装java的符号链接到/ usr/java/latest
查看>>
java getparametermap_request.getParameterMap()问题
查看>>
java getresultlist_java – Hibernate – TypedQuery.getResultList()返...
查看>>
mysql用admin登录失败_[转载]MYSQL登录错误:mysqladmin: connect to server
查看>>
java n r t_java /n /r /t
查看>>
java 查看字节码_java javap查看class字节码
查看>>
python卸载不干净_mysql卸载不干净解决方法
查看>>
python父亲节祝福_关于父亲节走心文案 父亲节文案朋友圈
查看>>