DSA Sheet - Day 16 Binary Trees
🌳 DSA Sheet – Day 16: Binary Trees (Part 1)
This section introduces core binary tree concepts including DFS traversals, BFS level order traversal, and fundamental tree-based interview patterns.
📊 Progress Tracker
Progress: 0 / 6 Completed
| Done | Problem | Practice | Level | Companies |
|---|---|---|---|---|
| Preorder Traversal | Solve | Easy | Google, Microsoft | |
| Inorder Traversal | Solve | Easy | Amazon, Adobe | |
| Postorder Traversal | Solve | Easy | ||
| Level Order Traversal | Solve | Medium | Amazon, Uber | |
| Minimum Distance Between BST Nodes | Solve | Easy | ||
| Symmetric Tree | Solve | Easy | Microsoft, LinkedIn |
🧠 Key Approaches
- Tree Traversals: DFS (Preorder, Inorder, Postorder)
- Level Order: BFS using queue
- Minimum Distance: Inorder traversal of BST (sorted)
- Symmetric Tree: Mirror comparison (left vs right)
⚡ Quick Cheatsheet
Inorder Traversal (DFS)
void inorder(TreeNode* root){
if(!root) return;
inorder(root->left);
// visit node
inorder(root->right);
}
Level Order Traversal (BFS)
queue q;
q.push(root);
while(!q.empty()){
int size = q.size();
while(size--){
TreeNode* node = q.front();
q.pop();
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
}
}
Symmetric Tree
bool isMirror(TreeNode* a, TreeNode* b){
if(!a && !b) return true;
if(!a || !b) return false;
return a->val == b->val &&
isMirror(a->left, b->right) &&
isMirror(a->right, b->left);
}
🔥 Pro Tip
Binary Trees revolve around two core patterns:
- DFS (recursive thinking)
- BFS (level-wise traversal)