LeetCode: Add Two Numbers
时间:2019-11-10
本文章向大家介绍LeetCode: Add Two Numbers,主要包括LeetCode: Add Two Numbers使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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, except the number 0 itself.
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 Explanation: 342 + 465 = 807.
Solutions:
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 # 方法一: 7 class Solution: 8 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: 9 num1 = '' 10 while l1 and l1.val: 11 num1 += str(l1.val) 12 l1 = l1.next 13 num1 = int(num1[::-1]) 14 num2 = '' 15 while l2 and l2.val: 16 num2 += str(l2.val) 17 l2 = l2.next 18 num2 = int(num2[::-1]) 19 sum = str(num1 + num2)[::-1] 20 head = ListNode(sum[0]) 21 tmp = head 22 i = 1 23 while i < len(sum): 24 tmp.next = ListNode(sum[i]) 25 tmp = tmp.next 26 i += 1 27 return head 28 29
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 # 方法二: 递归实现: 7 8 class Solution: 9 def addTwoNumbers(self, l1: ListNode, l2: ListNode, c = 0) -> ListNode: 10 val = l1.val + l2.val + c 11 c = val // 10 12 ret = ListNode(val % 10 ) 13 14 if (l1.next != None or l2.next != None or c != 0): 15 if l1.next == None: 16 l1.next = ListNode(0) 17 if l2.next == None: 18 l2.next = ListNode(0) 19 ret.next = self.addTwoNumbers(l1.next,l2.next,c) 20 return ret 21
原文地址:https://www.cnblogs.com/noodleman/p/11830896.html
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失下篇
- ONOS1.3.0集群实验
- Spring Boot下的TDD(测试驱动开发)
- MySQL的索引是什么?怎么优化?
- C语言之函数
- ElasticSearch搜索引擎在SpringBoot中的实践
- 消费者驱动的微服务契约测试套件Spring Cloud Contract
- 使用Spring Boot开发一个Spring Mobile程序
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
- 内网穿透工具-ittun
- Elastic-Job-Spring-Boot-Starter简化你的任务配置
- Spring Boot处理REST API错误的正确姿势
- C语言之位运算
- C语言之预处理命令与用typedef命名已有类型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- sql serve2008是否自带互斥锁
- Flutter基础widgets教程-CupertinoSwitch篇
- Flutter基础widgets教程-CupertinoTabScaffold篇
- C++11 move 语义
- 论函数的设计应如何才好,返回临时变量 | 返回引用 | 传递引用
- Flutter基础widgets教程-CupertinoTabView篇
- 关于time的使用
- class priority_queue<> 简单介绍
- C++ share_prt 简单设计和实现
- 使用函数对象与使用函数的比较
- C++ 函数指针的定义方法及使用
- C++ 线程池的简易实现
- Flutter基础widgets教程-DataTable篇
- 2015-C++研发附加题第一题
- win7 64位 下,进程可申请的堆空间