write once,run anywhere
  • Home
  • Tags
  • Archives

LeetCode [2] Add Two Numbers

Contents

  • Questions
  • Coding
    • python

Questions¶

Difficulty: Medium

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

Coding¶

python¶

# -*- coding: utf-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
        """
        l = l1
        ll = l2
        flag = 0
        temp = None
        while l1 is not None and l2 is not None:
            l1.val =l1.val + l2.val + flag
            flag = l1.val / 10
            l1.val %= 10
            temp = l1
            l1 = l1.next
            l2 = l2.next

        if l2 is not None:
            temp.next = l2
            l1 = l2

        while l1 is not None:
            l1.val += flag
            flag = l1.val / 10
            l1.val %= 10
            temp = l1
            l1 = l1.next

        if flag == 1:
            temp.next = ll
            ll.val = 1
            ll.next =  None

        return l

Related Posts

  • LeetCode [1] Two Sum
  • LeetCode [189] Rotate Array
  • LeetCode [58] Length of Last Word
  • LeetCode [190] Reverse Bits
  • LeetCode [151] Reverse Words in a String

  • « LeetCode [1] Two Sum
  • LeetCode [189] Rotate Array »

Published

8月 20, 2016

Last Updated

8月 20, 2016

Category

Linux

Tags

  • LeetCode 13

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor