LeetCode-Add Two Numbers

来源:互联网 发布:redis数据存储在哪里 编辑:程序博客网 时间:2024/05/17 17:59

题目描述

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

# Leetcode:https://leetcode.com/problems/add-two-numbers/description/# 2. Add Two Numbers# Definition for singly-linked list.# 结点类class ListNode(object):    def __init__(self, x):        self.val = x        self.next = Noneclass Solution(object):    def addTwoNumbers(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        decade = 0 # 十位        unit = 0   # 个位        listNode = ListNode(None) # 声明一个链表        head = listNode           # 记录头结点,用于返回结果        # 依次遍历l1和l2        while l1 != None and l2 != None:            result = l1.val + l2.val + decade            decade = result/10            unit = result%10            tempNode = ListNode(unit)            listNode.next = tempNode            l1 = l1.next            l2 = l2.next            listNode = listNode.next        while l1 != None:            result = l1.val + decade            decade = result/10            unit = result%10            tempNode = ListNode(unit)            listNode.next = tempNode            l1 = l1.next            listNode = listNode.next        while l2 != None:            result = l2.val + decade            decade = result/10            unit = result%10            tempNode = ListNode(unit)            listNode.next = tempNode            l2 = l2.next            listNode = listNode.next        # 可能存在长度相等,需要最后加一位1        # Input:        # [5]        # [5]        # Output:        # [0]        # Expected:        # [0,1]        if decade == 1:            tempNode = ListNode(decade)            listNode.next = tempNode        return head.next