Binary Tree LeetCode Problems: All 174, With Python Solutions

Every problem in this library that LeetCode tags Binary Tree 174 in total, 128 of them with a complete Python solution, a worked example and the time and space complexity of the approach.

  • 174 problems
  • 38 Easy
  • 120 Medium
  • 16 Hard

How Binary Tree problems are solved

A tag names the subject, not the method. These pattern hubs cover the techniques that actually solve Binary Tree problems — each one explains the approach, gives a Python template and states its complexity.

  • Tree Traversal — Choose the order — preorder, inorder, postorder, level — and the problem solves itself.

Binary Tree problems by difficulty

Problems with a complete Python solution are listed first, then by ascending problem number.

Easy (38)

#ProblemDifficultyTopics
94Binary Tree Inorder TraversalEasyStack, Tree, Depth-First Search +1
100Same TreeEasyTree, Depth-First Search, Breadth-First Search +1
101Symmetric TreeEasyTree, Depth-First Search, Breadth-First Search +1
104Maximum Depth of Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
108Convert Sorted Array to Binary Search TreeEasyTree, Binary Search Tree, Array +2
110Balanced Binary TreeEasyTree, Depth-First Search, Binary Tree
111Minimum Depth of Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
112Path SumEasyTree, Depth-First Search, Breadth-First Search +1
144Binary Tree Preorder TraversalEasyStack, Tree, Depth-First Search +1
145Binary Tree Postorder TraversalEasyStack, Tree, Depth-First Search +1
222Count Complete Tree NodesEasyBit Manipulation, Tree, Binary Search +1
226Invert Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
257Binary Tree PathsEasyTree, Depth-First Search, String +2
404Sum of Left LeavesEasyTree, Depth-First Search, Breadth-First Search +1
501Find Mode in Binary Search TreeEasyTree, Depth-First Search, Binary Search Tree +1
530Minimum Absolute Difference in BSTEasyTree, Depth-First Search, Breadth-First Search +2
543Diameter of Binary TreeEasyTree, Depth-First Search, Binary Tree
563Binary Tree TiltEasyTree, Depth-First Search, Binary Tree
572Subtree of Another TreeEasyTree, Depth-First Search, Binary Tree +2
617Merge Two Binary TreesEasyTree, Depth-First Search, Breadth-First Search +1
637Average of Levels in Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
653Two Sum IV - Input is a BSTEasyTree, Depth-First Search, Breadth-First Search +4
671Second Minimum Node In a Binary TreeEasyTree, Depth-First Search, Binary Tree
700Search in a Binary Search TreeEasyTree, Binary Search Tree, Binary Tree
703Kth Largest Element in a StreamEasyTree, Design, Binary Search Tree +3
783Minimum Distance Between BST NodesEasyTree, Depth-First Search, Breadth-First Search +2
872Leaf-Similar TreesEasyTree, Depth-First Search, Binary Tree
897Increasing Order Search TreeEasyStack, Tree, Depth-First Search +2
938Range Sum of BSTEasyTree, Depth-First Search, Binary Search Tree +1
965Univalued Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
993Cousins in Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
1022Sum of Root To Leaf Binary NumbersEasyTree, Depth-First Search, Binary Tree
1379Find a Corresponding Node of a Binary Tree in a Clone of That TreeEasyTree, Depth-First Search, Breadth-First Search +1
2236Root Equals Sum of ChildrenEasyTree, Binary Tree
2331Evaluate Boolean Binary TreeEasyTree, Depth-First Search, Binary Tree
270Closest Binary Search Tree ValuePremiumEasyTree, Depth-First Search, Binary Search Tree +2
1469Find All The Lonely NodesPremiumEasyTree, Depth-First Search, Breadth-First Search +1
2689Extract Kth Character From The Rope TreePremiumEasyTree, Depth-First Search, Binary Tree

Medium (120)

#ProblemDifficultyTopics
95Unique Binary Search Trees IIMediumTree, Binary Search Tree, Dynamic Programming +2
96Unique Binary Search TreesMediumTree, Binary Search Tree, Math +2
98Validate Binary Search TreeMediumTree, Depth-First Search, Binary Search Tree +1
99Recover Binary Search TreeMediumTree, Depth-First Search, Binary Search Tree +1
102Binary Tree Level Order TraversalMediumTree, Breadth-First Search, Binary Tree
103Binary Tree Zigzag Level Order TraversalMediumTree, Breadth-First Search, Binary Tree
105Construct Binary Tree from Preorder and Inorder TraversalMediumTree, Array, Hash Table +2
106Construct Binary Tree from Inorder and Postorder TraversalMediumTree, Array, Hash Table +2
107Binary Tree Level Order Traversal IIMediumTree, Breadth-First Search, Binary Tree
109Convert Sorted List to Binary Search TreeMediumTree, Binary Search Tree, Linked List +2
113Path Sum IIMediumTree, Depth-First Search, Backtracking +1
114Flatten Binary Tree to Linked ListMediumStack, Tree, Depth-First Search +2
116Populating Next Right Pointers in Each NodeMediumTree, Depth-First Search, Breadth-First Search +2
117Populating Next Right Pointers in Each Node IIMediumTree, Depth-First Search, Breadth-First Search +2
129Sum Root to Leaf NumbersMediumTree, Depth-First Search, Binary Tree
173Binary Search Tree IteratorMediumStack, Tree, Design +3
199Binary Tree Right Side ViewMediumTree, Depth-First Search, Breadth-First Search +1
230Kth Smallest Element in a BSTMediumTree, Depth-First Search, Binary Search Tree +1
235Lowest Common Ancestor of a Binary Search TreeMediumTree, Depth-First Search, Binary Search Tree +1
236Lowest Common Ancestor of a Binary TreeMediumTree, Depth-First Search, Binary Tree
331Verify Preorder Serialization of a Binary TreeMediumStack, Tree, String +1
337House Robber IIIMediumTree, Depth-First Search, Dynamic Programming +1
437Path Sum IIIMediumTree, Depth-First Search, Binary Tree
449Serialize and Deserialize BSTMediumTree, Depth-First Search, Breadth-First Search +4
450Delete Node in a BSTMediumTree, Binary Search Tree, Binary Tree
508Most Frequent Subtree SumMediumTree, Depth-First Search, Hash Table +1
513Find Bottom Left Tree ValueMediumTree, Depth-First Search, Breadth-First Search +1
515Find Largest Value in Each Tree RowMediumTree, Depth-First Search, Breadth-First Search +1
538Convert BST to Greater TreeMediumTree, Depth-First Search, Binary Search Tree +1
606Construct String from Binary TreeMediumTree, Depth-First Search, String +1
623Add One Row to TreeMediumTree, Depth-First Search, Breadth-First Search +1
652Find Duplicate SubtreesMediumTree, Depth-First Search, Hash Table +1
654Maximum Binary TreeMediumStack, Tree, Array +3
655Print Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
662Maximum Width of Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
669Trim a Binary Search TreeMediumTree, Depth-First Search, Binary Search Tree +1
687Longest Univalue PathMediumTree, Depth-First Search, Binary Tree
701Insert into a Binary Search TreeMediumTree, Binary Search Tree, Binary Tree
814Binary Tree PruningMediumTree, Depth-First Search, Binary Tree
863All Nodes Distance K in Binary TreeMediumTree, Depth-First Search, Breadth-First Search +2
865Smallest Subtree with all the Deepest NodesMediumTree, Depth-First Search, Breadth-First Search +2
889Construct Binary Tree from Preorder and Postorder TraversalMediumTree, Array, Hash Table +2
894All Possible Full Binary TreesMediumTree, Recursion, Memoization +2
919Complete Binary Tree InserterMediumTree, Breadth-First Search, Design +1
951Flip Equivalent Binary TreesMediumTree, Depth-First Search, Binary Tree
958Check Completeness of a Binary TreeMediumTree, Breadth-First Search, Binary Tree
971Flip Binary Tree To Match Preorder TraversalMediumTree, Depth-First Search, Binary Tree
979Distribute Coins in Binary TreeMediumTree, Depth-First Search, Binary Tree
988Smallest String Starting From LeafMediumTree, Depth-First Search, String +2
998Maximum Binary Tree IIMediumTree, Binary Tree
1008Construct Binary Search Tree from Preorder TraversalMediumStack, Tree, Binary Search Tree +3
1026Maximum Difference Between Node and AncestorMediumTree, Depth-First Search, Binary Tree
1038Binary Search Tree to Greater Sum TreeMediumTree, Depth-First Search, Binary Search Tree +1
1080Insufficient Nodes in Root to Leaf PathsMediumTree, Depth-First Search, Binary Tree
1104Path In Zigzag Labelled Binary TreeMediumTree, Math, Binary Tree
1110Delete Nodes And Return ForestMediumTree, Depth-First Search, Array +2
1123Lowest Common Ancestor of Deepest LeavesMediumTree, Depth-First Search, Breadth-First Search +2
1145Binary Tree Coloring GameMediumTree, Depth-First Search, Binary Tree
1161Maximum Level Sum of a Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
1261Find Elements in a Contaminated Binary TreeMediumTree, Depth-First Search, Breadth-First Search +3
1302Deepest Leaves SumMediumTree, Depth-First Search, Breadth-First Search +1
1305All Elements in Two Binary Search TreesMediumTree, Depth-First Search, Binary Search Tree +2
1315Sum of Nodes with Even-Valued GrandparentMediumTree, Depth-First Search, Breadth-First Search +1
1325Delete Leaves With a Given ValueMediumTree, Depth-First Search, Binary Tree
1339Maximum Product of Splitted Binary TreeMediumTree, Depth-First Search, Binary Tree
1361Validate Binary Tree NodesMediumTree, Depth-First Search, Breadth-First Search +3
1367Linked List in Binary TreeMediumTree, Depth-First Search, Linked List +1
1372Longest ZigZag Path in a Binary TreeMediumTree, Depth-First Search, Dynamic Programming +1
1382Balance a Binary Search TreeMediumGreedy, Tree, Depth-First Search +3
1448Count Good Nodes in Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
1457Pseudo-Palindromic Paths in a Binary TreeMediumBit Manipulation, Tree, Depth-First Search +2
1530Number of Good Leaf Nodes PairsMediumTree, Depth-First Search, Binary Tree
1609Even Odd TreeMediumTree, Breadth-First Search, Binary Tree
2049Count Nodes With the Highest ScoreMediumTree, Depth-First Search, Array +1
2096Step-By-Step Directions From a Binary Tree Node to AnotherMediumTree, Depth-First Search, String +1
2196Create Binary Tree From DescriptionsMediumTree, Array, Hash Table +1
2265Count Nodes Equal to Average of SubtreeMediumTree, Depth-First Search, Binary Tree
2385Amount of Time for Binary Tree to Be InfectedMediumTree, Depth-First Search, Breadth-First Search +2
2415Reverse Odd Levels of Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
2471Minimum Number of Operations to Sort a Binary Tree by LevelMediumTree, Breadth-First Search, Binary Tree
2476Closest Nodes Queries in a Binary Search TreeMediumTree, Depth-First Search, Binary Search Tree +3
2583Kth Largest Sum in a Binary TreeMediumTree, Breadth-First Search, Binary Tree +1
2641Cousins in Binary Tree IIMediumTree, Depth-First Search, Breadth-First Search +2
2673Make Costs of Paths Equal in a Binary TreeMediumGreedy, Tree, Array +2
156Binary Tree Upside DownPremiumMediumTree, Depth-First Search, Binary Tree
250Count Univalue SubtreesPremiumMediumTree, Depth-First Search, Binary Tree
255Verify Preorder Sequence in Binary Search TreePremiumMediumStack, Tree, Binary Search Tree +4
285Inorder Successor in BSTPremiumMediumTree, Depth-First Search, Binary Search Tree +1
298Binary Tree Longest Consecutive SequencePremiumMediumTree, Depth-First Search, Binary Tree
314Binary Tree Vertical Order TraversalPremiumMediumTree, Depth-First Search, Breadth-First Search +3
333Largest BST SubtreePremiumMediumTree, Depth-First Search, Binary Search Tree +2
366Find Leaves of Binary TreePremiumMediumTree, Depth-First Search, Binary Tree
426Convert Binary Search Tree to Sorted Doubly Linked ListPremiumMediumStack, Tree, Depth-First Search +4
510Inorder Successor in BST IIPremiumMediumTree, Binary Search Tree, Binary Tree
536Construct Binary Tree from StringPremiumMediumStack, Tree, Depth-First Search +2
545Boundary of Binary TreePremiumMediumTree, Depth-First Search, Binary Tree
549Binary Tree Longest Consecutive Sequence IIPremiumMediumTree, Depth-First Search, Binary Tree
663Equal Tree PartitionPremiumMediumTree, Depth-First Search, Binary Tree
666Path Sum IVPremiumMediumTree, Depth-First Search, Array +2
742Closest Leaf in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
776Split BSTPremiumMediumTree, Binary Search Tree, Recursion +1
1120Maximum Average SubtreePremiumMediumTree, Depth-First Search, Binary Tree
1214Two Sum BSTsPremiumMediumStack, Tree, Depth-First Search +4
1430Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
1485Clone Binary Tree With Random PointerPremiumMediumTree, Depth-First Search, Breadth-First Search +2
1586Binary Search Tree Iterator IIPremiumMediumStack, Tree, Design +3
1602Find Nearest Right Node in Binary TreePremiumMediumTree, Breadth-First Search, Binary Tree
1612Check If Two Expression Trees are EquivalentPremiumMediumTree, Depth-First Search, Hash Table +2
1628Design an Expression Tree With Evaluate FunctionPremiumMediumStack, Tree, Design +3
1644Lowest Common Ancestor of a Binary Tree IIPremiumMediumTree, Depth-First Search, Binary Tree
1650Lowest Common Ancestor of a Binary Tree IIIPremiumMediumTree, Hash Table, Two Pointers +1
1660Correct a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +2
1666Change the Root of a Binary TreePremiumMediumTree, Depth-First Search, Binary Tree
1676Lowest Common Ancestor of a Binary Tree IVPremiumMediumTree, Depth-First Search, Hash Table +1
1740Find Distance in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +2
1902Depth of BST Given Insertion OrderPremiumMediumTree, Binary Search Tree, Array +2
1973Count Nodes Equal to Sum of DescendantsPremiumMediumTree, Depth-First Search, Binary Tree
2445Number of Nodes With Value OnePremiumMediumTree, Depth-First Search, Breadth-First Search +2
2764Is Array a Preorder of Some ‌Binary TreePremiumMediumStack, Tree, Depth-First Search +1
2773Height of Special Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1

Hard (16)

#ProblemDifficultyTopics
124Binary Tree Maximum Path SumHardTree, Depth-First Search, Dynamic Programming +1
297Serialize and Deserialize Binary TreeHardTree, Depth-First Search, Breadth-First Search +3
968Binary Tree CamerasHardTree, Depth-First Search, Dynamic Programming +1
987Vertical Order Traversal of a Binary TreeHardTree, Depth-First Search, Breadth-First Search +3
1028Recover a Tree From Preorder TraversalHardTree, Depth-First Search, String +1
1373Maximum Sum BST in Binary TreeHardTree, Depth-First Search, Binary Search Tree +2
1569Number of Ways to Reorder Array to Get Same BSTHardTree, Union Find, Binary Search Tree +7
2458Height of Binary Tree After Subtree Removal QueriesHardTree, Depth-First Search, Breadth-First Search +2
2509Cycle Length Queries in a TreeHardTree, Array, Binary Tree
272Closest Binary Search Tree Value IIPremiumHardStack, Tree, Depth-First Search +4
431Encode N-ary Tree to Binary TreePremiumHardTree, Depth-First Search, Breadth-First Search +2
1597Build Binary Expression Tree From Infix ExpressionPremiumHardStack, Tree, String +1
1932Merge BSTs to Create Single BSTHardTree, Depth-First Search, Hash Table +2
2005Subtree Removal Game with Fibonacci TreePremiumHardTree, Math, Dynamic Programming +2
2313Minimum Flips in Binary Tree to Get ResultPremiumHardTree, Depth-First Search, Dynamic Programming +1
2792Count Nodes That Are Great EnoughPremiumHardTree, Depth-First Search, Divide and Conquer +1

When the Binary Tree problem arrives live

Stealth Interview is a desktop app for macOS and Windows. It reads the coding problem off your screen, returns a working solution with a step-by-step explanation and its time and space complexity, and transcribes what the interviewer is saying — while staying invisible to screen sharing.