aboutsummaryrefslogtreecommitdiff
path: root/double_num_represent_ll.py
blob: 482909e86a7cc3ddfa5e12bf0c00ebf1cdc24afb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 2816. Double a Number Represented as a Linked List

"""
given the 'head' of a non-empty linked list representing a non negative
integer without leading zeros. return the 'head' of the linked list after
doubling it.
"""


# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next


class Solution(object):
    def doubleIt(self, head):
        """
        :type head: Optional[ListNode]
        :rtype: Optional[ListNode]
        """
        if head.val > 4:
            head = ListNode(0, head)
        node = head
        while node:
            node.val = (node.val * 2) % 10
            if node.next and node.next.val > 4:
                node.val += 1
            node = node.next
        return head