class Solution(object):
def sumNumbers(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.res = 0
if not root:
return 0
path = root.val
self.dfs(root,path)
return self.res
def dfs(self,root,path):
if not root:
return
if not root.left and not root.right:
self.res += path
if root.left:
self.dfs(root.left,10*path+root.left.val)
if root.right:
self.dfs(root.right,10*path+root.right.val)
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
l3 = re = ListNode(0)
res = 0
while l1 or l2:
x = l1.val if l1 else 0
y = l2.val if l2 else 0
s = res + x + y
res = s//10
l3.next = ListNode(s%10)
l3 =l3.next
if l1:
l1 = l1.next
if l2:
l2 = l2.next
if res > 0:
l3.next = ListNode(1)
return re.next
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
slow = head
fast = head
for i in range(n):
fast = fast.next
if fast == None:
return head.next
while fast and fast.next:
fast = fast.next
slow = slow.next
slow.next = slow.next.next
return head