Tree LeetCode Problems: All 225, With Python Solutions

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

  • 225 problems
  • 41 Easy
  • 142 Medium
  • 42 Hard

How Tree problems are solved

A tag names the subject, not the method. These pattern hubs cover the techniques that actually solve 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.

Tree problems by difficulty

Showing the first 200 of 225 problems. Problems with a complete Python solution are listed first, then by ascending problem number.

Easy (40)

#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
559Maximum Depth of N-ary TreeEasyTree, Depth-First Search, Breadth-First Search
563Binary Tree TiltEasyTree, Depth-First Search, Binary Tree
572Subtree of Another TreeEasyTree, Depth-First Search, Binary Tree +2
589N-ary Tree Preorder TraversalEasyStack, Tree, Depth-First Search
590N-ary Tree Postorder TraversalEasyStack, Tree, Depth-First Search
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

Medium (125)

#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
341Flatten Nested List IteratorMediumStack, Tree, Depth-First Search +3
427Construct Quad TreeMediumTree, Array, Divide and Conquer +1
429N-ary Tree Level Order TraversalMediumTree, Breadth-First Search
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
558Logical OR of Two Binary Grids Represented as Quad-TreesMediumTree, Divide and Conquer
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
690Employee ImportanceMediumTree, Depth-First Search, Breadth-First Search +2
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
1376Time Needed to Inform All EmployeesMediumTree, Depth-First Search, Breadth-First Search
1382Balance a Binary Search TreeMediumGreedy, Tree, Depth-First Search +3
1443Minimum Time to Collect All Apples in a TreeMediumTree, Depth-First Search, Breadth-First Search +1
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
1519Number of Nodes in the Sub-Tree With the Same LabelMediumTree, Depth-First Search, Breadth-First Search +2
1530Number of Good Leaf Nodes PairsMediumTree, Depth-First Search, Binary Tree
1600Throne InheritanceMediumTree, Depth-First Search, Design +1
1609Even Odd TreeMediumTree, Breadth-First Search, Binary Tree
1993Operations on TreeMediumTree, Depth-First Search, Breadth-First Search +3
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
2368Reachable Nodes With RestrictionsMediumTree, Depth-First Search, Breadth-First Search +4
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
2467Most Profitable Path in a TreeMediumTree, Depth-First Search, Breadth-First Search +2
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
2477Minimum Fuel Cost to Report to the CapitalMediumTree, Depth-First Search, Breadth-First Search +1
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
2925Maximum Score After Applying Operations on a TreeMediumTree, Depth-First Search, Dynamic Programming
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
582Kill ProcessPremiumMediumTree, Depth-First Search, Breadth-First Search +2
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
1245Tree DiameterPremiumMediumTree, Depth-First Search, Breadth-First Search +2
1257Smallest Common RegionPremiumMediumTree, Depth-First Search, Breadth-First Search +3
1273Delete Tree NodesPremiumMediumTree, Depth-First Search, Breadth-First Search +1
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
1490Clone N-ary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
1506Find Root of N-Ary TreePremiumMediumBit Manipulation, Tree, Depth-First Search +1

Hard (35)

#ProblemDifficultyTopics
124Binary Tree Maximum Path SumHardTree, Depth-First Search, Dynamic Programming +1
297Serialize and Deserialize Binary TreeHardTree, Depth-First Search, Breadth-First Search +3
834Sum of Distances in TreeHardTree, Depth-First Search, Graph +1
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
1377Frog Position After T SecondsHardTree, Depth-First Search, Breadth-First Search +1
1483Kth Ancestor of a Tree NodeHardBit Manipulation, Tree, Depth-First Search +4
1569Number of Ways to Reorder Array to Get Same BSTHardTree, Union Find, Binary Search Tree +7
1617Count Subtrees With Max Distance Between CitiesHardBit Manipulation, Tree, Dynamic Programming +2
1719Number Of Ways To Reconstruct A TreeHardTree, Graph
1766Tree of CoprimesHardTree, Depth-First Search, Array +2
1916Count Ways to Build Rooms in an Ant ColonyHardTree, Graph, Topological Sort +3
2003Smallest Missing Genetic Value in Each SubtreeHardTree, Depth-First Search, Union Find +1
2246Longest Path With Different Adjacent CharactersHardTree, Depth-First Search, Graph +3
2322Minimum Score After Removals on a TreeHardBit Manipulation, Tree, Depth-First Search +1
2421Number of Good PathsHardTree, Union Find, Graph +3
2440Create Components With Same ValueHardTree, Depth-First Search, Array +2
2458Height of Binary Tree After Subtree Removal QueriesHardTree, Depth-First Search, Breadth-First Search +2
2509Cycle Length Queries in a TreeHardTree, Array, Binary Tree
2538Difference Between Maximum and Minimum Price SumHardTree, Depth-First Search, Array +1
2581Count Number of Possible Root NodesHardTree, Depth-First Search, Array +2
2603Collect Coins in a TreeHardTree, Graph, Topological Sort +1
2646Minimize the Total Price of the TripsHardTree, Depth-First Search, Graph +2
2791Count Paths That Can Form a Palindrome in a TreeHardBit Manipulation, Tree, Depth-First Search +2
2846Minimum Edge Weight Equilibrium Queries in a TreeHardTree, Graph, Array +1
2867Count Valid Paths in a TreeHardTree, Depth-First Search, Math +2
2872Maximum Number of K-Divisible ComponentsHardTree, Depth-First Search
2920Maximum Points After Collecting Coins From All NodesHardBit Manipulation, Tree, Depth-First Search +3
2973Find Number of Coins to Place in Tree NodesHardTree, Depth-First Search, Dynamic Programming +2
272Closest Binary Search Tree Value IIPremiumHardStack, Tree, Depth-First Search +4
428Serialize and Deserialize N-ary TreePremiumHardTree, Depth-First Search, Breadth-First Search +1
431Encode N-ary Tree to Binary TreePremiumHardTree, Depth-First Search, Breadth-First Search +2
1516Move Sub-Tree of N-Ary TreePremiumHardTree, Depth-First Search

When the 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.