I have a binary tree with nodes like shown below.
class Node:
def __init__(self, value=None, left=None, right=None):
self.value = value
self.number = None
self.left = left
self.right = right
Given a tree, I want to number it from 0 in post order. An example of what I want to do
>>> left = Node(None, Node(3), Node(2))
>>> right = Node(None, Node(9), Node(10))
>>> node = Node(None, left, right)
>>> number(node)
>>> tree.left.number, tree.right.number, tree.number
0, 1, 2
However, I'm having trouble getting the right cases for the recursion part.
I am trying something like
def number(node, count=0):
if not node.left and not node.right:
node.number = count
count += 1
else:
number(node.left, count)
number(node.right, count)
valueandnumber?Node(3)should give an error.HuffmanNodewhich you did not define. You perhaps better useNodesuch that the code compiles.