Leetcode 2 两数相加【链表】
2019-01-23 11:32
260 查看
本题是比较基础的链表题。
1.思路
1)构造头部节点
2)记录表头位置
3)边相加,边移位(构造下一个节点,指向下一个节点)
Note:最后return的时候要注意不能把头节点也返回(为了省时间,就没有把多余的节点删除)
2.代码
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ temp = ListNode(0) #表头节点,temp为操作辅助链表 l3 = temp #记录表头位置,因为temp指向会发生改变 sum = 0 #初始化每一位数字之和 while l1 != None or l2 != None or sum != 0: #添加最后一个条件是为了处理两个链表同时结束并且有进位产生的情况,如果没有最后一个条件,在两个都结束的情况下,最后一次循环不会进行 if l1 != None: sum += l1.val l1 = l1.next if l2 != None: sum += l2.val l2 = l2.next temp.next = ListNode(sum % 10) #开始构造节点,并且存入当前位计算结果 temp = temp.next #移动指针 sum = sum // 10 #进位,更新sum(如果有进位,下一次就在sum = 1基础上进行计算) return l3.next
相关文章推荐
- Leetcode 第二题,两数链表相加
- 链表:链表两数相加( LeetCode 2. Add Two Numbers(两数相加))
- LeetCode 02. 两数相加(链表) 03.最大不重复的字符串
- 【LeetCode-2】 两数相加 (链表)
- LeetCode 2 两数相加(链表)
- leetcode 链表里的两数相加 C++实现
- Leetcode002--单链表两数相加
- LeetCode 两数之和(2) c++, 链表
- 力扣用链表实现两数相加
- LeetCode-2 两数相加 Add Two Numbers
- LeetCode Add Two Numbers两个链表数值相加
- Leetcode Add Two Numbers 两个链表表示的数相加
- LeetCode之链表数相加
- [LeetCode] 2. Add Two Numbers 两数相加 @python
- leetcode 两数相加
- leetcode 5. 两个链表逐个元素相加 Add Two Numbers
- Leetcode 653. Two Sum IV - Input is a BST 两数相加4 解题报告
- LeetCode每日一题 009 两数相加
- LeetCode - 66/67 - 两数相加加法模拟
- leetcode-2-两数相加(add two numbers)-java