Exemplo n.º 1
0
from collections import deque


class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        """
        this method takes O(N) space complexity
        """
        dq = deque()
        node = head
        while node:
            dq.append(node)
            node = node.next
        if n == len(dq):
            if len(dq) == 1:
                return None
            else:
                return dq[1]
        elif n == 1:
            dq[-2].next = None
            return dq[0]
        else:
            dq[-n - 1].next = dq[-n + 1]
            return dq[0]


# ans = Solution().removeNthFromEnd(ListNode.parse([1,2,3,4,5]), 2)
ans = Solution().removeNthFromEnd(ListNode.parse([1, 2]), 1)
print(ans)
print(ans.serialize())
Exemplo n.º 2
0

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        sentinel = ListNode(0, None)
        node = sentinel
        carry = 0
        while l1 or l2 or carry:
            s = carry
            if l1:
                s += l1.val
                l1 = l1.next
            if l2:
                s += l2.val
                l2 = l2.next
            carry = s // 10
            node.next = ListNode(s % 10, None)
            node = node.next
        return sentinel.next


a = ListNode.parse([9, 9, 9, 9, 9, 9, 9])
b = ListNode.parse([9, 9, 9, 9])
ans = Solution().addTwoNumbers(a, b)
print(ans.serialize())