leetcode两数相加
时间:2022-07-22
本文章向大家介绍leetcode两数相加,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
head = ListNode(0)
# 创建三个指针
p = l1;q = l2;L = head
c = 0 # 表示进位
while p!=None or q!=None:
x = p.val if p!=None else 0
y = q.val if q!=None else 0
sum = c + x + y
c = sum // 10
L.next = ListNode(sum%10)
L = L.next
if p!=None :
p = p.next
if q!=None :
q = q.next
if c>0:
L.next = ListNode(c)
return head.next
java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head = new ListNode(0);
ListNode p = l1,q = l2,node = head;
int c = 0;
while(p!=null||q!=null){
//这里避免了一个链表已经遍历到头
int x = (p!=null)?p.val:0;
int y = (q!=null)?q.val:0;
int sum = c + x + y;
c = sum/10;
node.next =new ListNode(sum%10);
node = node.next;
if(q!=null) q=q.next;
if(p!=null) p=p.next;
}
if(c>0){
node.next = new ListNode(c);
}
return head.next;
}
}
- HDUOJ --2544最短路(基础)
- 帮同学的忙,随意写了个课程设计(关于循环双向列表)
- HDUOJ---3371Connect the Cities
- 初学HTML一些基本控件语句
- java学习之第五章编程题示例(初学篇)
- java第四章编程题(初学篇)
- java测试Unicode编码以及数组的运用(初学篇)
- HDUOJ---1754 Minimum Inversion Number (单点更新之求逆序数)
- HDUOJ-------1753大明A+B(大数之小数加法)
- HDUOJ---1754 I Hate It (线段树之单点更新查区间最大值)
- HDUOJ----1166敌兵布阵(线段树单点更新)
- poj----2155 Matrix(二维树状数组第二类)
- poj------2352 Stars(树状数组)
- HDUOJ-----2852 KiKi's K-Number(树状数组+二分)
- 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 数组属性和方法
- B. Taxi (贪心)
- JAVA入门学习二
- POJ2251(三维bfs)
- Good Numbers (hard version) (位运算)
- POJ2236 (并查集)
- B. Minimize the Permutation (贪心)
- 深度学习调参tricks总结!
- JAVA入门学习十三
- 带分数 第四届蓝桥杯省赛C++B组
- codeforce1178B (DP)
- String Modification (CodeCraft-20 (Div. 2))
- codeforces 107A(dfs)
- codeforces 698A(暴力)
- 机器人跳跃问题 (二分)
- codeforces 1066B(贪心)