首页 > 代码库 > 445. Add Two Numbers II ——while s1 or s2 or carry 题目再简单也要些测试用例
445. Add Two Numbers II ——while s1 or s2 or carry 题目再简单也要些测试用例
You are given two linked lists representing two non-negative numbers. The most significant digit comes first 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.
Follow up:
What if you cannot modify the input lists? In other words, reversing the lists is not allowed.
Example:
Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 8 -> 0 -> 7
# 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 Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 8 -> 0 -> 7 7->2->4->3 5->6->4 =------------- 7->7->0->7 ->1 """ s1,s2 = [],[] p1,p2 = l1,l2 while p1: s1.append(p1.val) p1 = p1.next while p2: s2.append(p2.val) p2 = p2.next carry = 0 fake_head = ListNode(None) while s1 or s2 or carry: v1 = s1.pop() if s1 else 0 v2 = s2.pop() if s2 else 0 val = v1 + v2 + carry if val >= 10: val -= 10 carry = 1 else: carry = 0 head = ListNode(val) head.next = fake_head.next fake_head.next = head return fake_head.next
445. Add Two Numbers II ——while s1 or s2 or carry 题目再简单也要些测试用例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。