Binary Tree (Python) - All Codes
Binary Tree (Python) - All Codes
class BinaryTree:
root = None
que = []
q = []
q.append(self.root)
if temp.left == None:
temp.left = BNT(data)
break
else:
q.append(temp.left)
if temp.right == None:
temp.right = BNT(data)
break
else:
q.append(temp.right)
if self.root == None:
self.root = temp
left_val = arr.pop(0)
right_val = arr.pop(0)
if left_val != -1:
left = BNT(left_val)
q.append(left)
temp.left = left
if right_val != -1:
right = BNT(right_val)
q.append(right)
temp.right = right
left = BinaryTree()
right = BinaryTree()
root.left = left.root
root.right = right.root
return root
def traverse(root):
if root == None:
return
print(root.data, sep = " ")
traverse(root.left)
traverse(root.right)
print(root.data)
if (root.left != None):
que.append(root.left)
if (root.right != None):
que.append(root.right)
que.pop(0)
if (len(que) > 0):
traverseQue(que[0], que)
def numNodes(root):
if root == None:
return 0
left = numNodes(root.left)
right = numNodes(root.right)
return 1 + left + right
def findMax(root):
if root == None:
return 0
left = findMax(root.left)
right = findMax(root.right)
def findHeight(root):
if root == None:
return 0
def numLeafNodes(root):
if (root == None):
return 0
if (root.left == None and root.right == None):
return 1
atDep(root.left, k-1)
atDep(root.right, k-1)
def removeLeaf(root):
if root == None:
return
if (removeLeaf(root.left)):
root.left = None
if (removeLeaf(root.right)):
root.right = None
def checkBalanced(root):
if root == None:
return False
if (root.left == None and root.right != None) or (root.left != None and root.right ==
None):
return False
if root.left == None and root.right == None:
return True
b = BinaryTree()
# l = [1,2,3,4,5,-1,-1,8,-1,-1,-1,-1,-1]
# b.insertLevelWise(l)
# que = [b.root]
# traverseQue(b.root, que)
inorder = [4,2,5,1,6,3,7]
preorder = [1,2,4,5,3,6,7]
root = CreateTreeInAndPre(preorder, inorder)
traverse(root)