美文网首页
【python学习记录2】Add Two Numbers

【python学习记录2】Add Two Numbers

作者: hitsunbo | 来源:发表于2016-08-29 21:53 被阅读150次

    问题描述

    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

    详细问题

    代码实现

    # 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
            """
            headNode = ListNode(0)
            point = headNode
            sum = 0
            while (l1 != None) or (l2 != None) :
                if(l1 != None) :
                    sum = sum + l1.val
                    l1 = l1.next
                if(l2 != None) :
                    sum = sum + l2.val
                    l2 = l2.next
                newNode = ListNode(sum % 10)
                point.next = newNode
                point = point.next
                sum = sum//10
            if sum > 0 :
                newNode = ListNode(sum)
                point.next = newNode
            return headNode.next
    

    经验总结

    • 定义新的头结点(headNode)有利于返回和控制整个链表
    • 两个if判断是否为None,简化了代码结构,避免了多次分类讨论
    • 临时变量定义新sum,随机记录

    相关文章

      网友评论

          本文标题:【python学习记录2】Add Two Numbers

          本文链接:https://www.haomeiwen.com/subject/pmhfettx.html