Guest User

Untitled

a guest
Feb 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. class Node:
  2. def __init__(self, k, l=None, r=None):
  3. self.k = k
  4. self.l = l
  5. self.r = r
  6.  
  7.  
  8. def max_diff(node):
  9. return max_diff_recur(node, -1, -1)
  10.  
  11. def max_diff_recur(node, max_seen, max_diff):
  12.  
  13. if node == None: return max_diff
  14.  
  15. curr = node.k
  16. if curr < max_seen:
  17. diff = max_seen - curr
  18. max_diff = max(max_diff, diff)
  19. elif curr > max_seen:
  20. max_seen = max(max_seen, curr)
  21.  
  22. l = max_diff_recur(node.l, max_seen, max_diff)
  23. r = max_diff_recur(node.r, max_seen, max_diff)
  24.  
  25. return max(l, r)
  26.  
  27.  
  28. if __name__ == "__main__":
  29. n1 = Node(1)
  30. n4 = Node(4)
  31. n7 = Node(7)
  32. n13 = Node(13)
  33. n6 = Node(6, n4, n7)
  34. n14 = Node(14, n13)
  35. n3 = Node(3, n1, n6)
  36. n10 = Node(14, n14)
  37. n8 = Node(8, n3, n10)
  38. print(max_diff(n8))
Add Comment
Please, Sign In to add comment