Python Recursion Cheat Sheet
Python Trees Cheat Sheet
1. What are Trees?
- A tree is a hierarchical data structure with nodes.
- Each tree has a root node and zero or more child nodes.
- Special case: Binary Tree - each node has at most 2 children.
2. Common Terminology:
- Root: Topmost node.
- Parent/Child: Relationship between nodes.
- Leaf: Node with no children.
- Depth: Distance from root to node.
- Height: Distance from node to deepest leaf.
3. Binary Tree Traversals (DFS):
Preorder (Root, Left, Right):
def preorder(node):
if node:
print(node.val)
preorder(node.left)
preorder(node.right)
Inorder (Left, Root, Right):
def inorder(node):
if node:
inorder(node.left)
print(node.val)
inorder(node.right)
Postorder (Left, Right, Root):
def postorder(node):
if node:
postorder(node.left)
postorder(node.right)
print(node.val)
4. Breadth-First Search (BFS) / Level Order:
from collections import deque
def bfs(root):
q = deque([root])
Python Recursion Cheat Sheet
while q:
node = q.popleft()
print(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
5. Binary Search Tree (BST) Property:
- Left subtree values < root value < right subtree values.
6. Common Tree Problems:
- Find height of a tree.
- Count nodes / leaves.
- Check if a tree is balanced.
- Lowest Common Ancestor (LCA).
7. Tips:
- Use recursion for DFS; use a queue for BFS.
- Visualize the tree for better understanding.
- For large trees, iterative solutions may be more memory-efficient.