tree

144.Binary-Tree-Preorder-Traversalarrow-up-right (M+) 145.Binary-Tree-Postorder-Traversalarrow-up-right (H-) 270.Closest-Binary-Search-Tree-Valuearrow-up-right (M+) 095.Unique-Binary-Search-Trees-IIarrow-up-right (H) 094.Binary Tree Inorder Traversalarrow-up-right (H-) 110.Balanced-Binary-Treearrow-up-right (M+) 124.Binary-Tree-Maximum-Path-Sumarrow-up-right (M+) 222.Count-Complete-Tree-Nodesarrow-up-right (M+) 099.Recover-Binary-Search-Treearrow-up-right (H) 114.Flatten-Binary-Tree-to-Linked-Listarrow-up-right (M+) 098.Validate-Binary-Search-Treearrow-up-right (M) 117.Populating Next Right Pointers in Each Node IIarrow-up-right (H) 156.Binary-Tree-Upside-Downarrow-up-right (H) 285.Inorder-Successor-in-BSTarrow-up-right (M) 298.Binary-Tree-Longest-Consecutive Sequencearrow-up-right (M+) 450.Delete-Node-in-a-BSTarrow-up-right (H) 437.Path-Sum-IIIarrow-up-right (H-) 333.Largest-BST-Subtreearrow-up-right (H) 543.Diameter-of-Binary-Treearrow-up-right (M+) 572.Subtree-of-Another-Treearrow-up-right (M) 549.Binary-Tree-Longest-Consecutive-Sequence-IIarrow-up-right (M) 173.Binary-Search-Tree-Iteratorarrow-up-right (M) 545.Boundary-of-Binary-Treearrow-up-right (H-) 272.Closest-Binary-Search-Tree-Value-IIarrow-up-right (M+) 310.Minimum-Height-Treesarrow-up-right (H-) 226.Invert-Binary-Treearrow-up-right (M) 655.Print-Binary-Treearrow-up-right (M+) 897.Increasing-Order-Search-Treearrow-up-right (M+) 501.Find-Mode-in-Binary-Search-Tree (M+) 558.Quad-Tree-Intersection (M+) 662.Maximum-Width-of-Binary-Treearrow-up-right (H-) 687.Longest-Univalue-Patharrow-up-right (M+) 742.Closest-Leaf-in-a-Binary-Tree (H) 834.Sum-of-Distances-in-Tree (H) 863.All-Nodes-Distance-K-in-Binary-Treearrow-up-right (H-) 958.Check-Completeness-of-a-Binary-Treearrow-up-right (M+) 1339. Maximum-Product-of-Splitted-Binary-Tree (TBD) 1104.Path-In-Zigzag-Labelled-Binary-Treearrow-up-right (M+) 1660.Correct-a-Binary-Treearrow-up-right (M+) 1666.Change-the-Root-of-a-Binary-Treearrow-up-right (H-) 1932.Merge-BSTs-to-Create-Single-BSTarrow-up-right (H) 2003.Smallest-Missing-Genetic-Value-in-Each-Subtreearrow-up-right (H)

Serialization & Hashing

297.Serialize-and-Deserialize-Binary-Treearrow-up-right (H-) 652.Find-Duplicate-Subtreesarrow-up-right (H) 1948.Delete-Duplicate-Folders-in-Systemarrow-up-right (H)

Traversal

  • Classic tree level order traversal with O(n) space

  • Special tree level order traversal with O(1) space: example problem (populate next right pointers in each node II)

Get inorder traversal predecessor/successor

Tree & Sequence

105.Construct-Binary-Tree-from-Preorder-and-Inorder-Traversalarrow-up-right (H-) 106.Construct-Binary-Tree-from-Inorder-and-Postorder-Traversalarrow-up-right (M+) 331.Verify-Preorder-Serialization-of-a-Binary-Treearrow-up-right (H) 449.Serialize-and-Deserialize-BSTarrow-up-right (H) 971.Flip-Binary-Tree-To-Match-Preorder-Traversalarrow-up-right (M+) 1028.Recover-a-Tree-From-Preorder-Traversalarrow-up-right (H-) 1569.Number-of-Ways-to-Reorder-Array-to-Get-Same-BSTarrow-up-right (H) 1597.Build-Binary-Expression-Tree-From-Infix-Expressionarrow-up-right (H) 1902.Depth-of-BST-Given-Insertion-Orderarrow-up-right (H-)

LCA

Problem and BF

  • Generic problem: Find lowest common ancestor for M nodes in a N-ary tree

  • BF solution: Find root to node paths for M nodes as M list. Then compare M list together to find the first diff element.

    • T.C. : build path O(M * SIZE(tree)) and find common LCA O(SIZE(tree) * M)

    • S.C. : O(M * SIZE(tree))

Improved solution thoughts

Example problems

236.Lowest-Common-Ancestor-of-a-Binary-Treearrow-up-right (H) 1676.Lowest-Common-Ancestor-of-a-Binary-Tree-IVarrow-up-right (M+) 1740.Find-Distance-in-a-Binary-Treearrow-up-right (H)

N-ary Tree

428.Serialize-and-Deserialize-N-ary-Treearrow-up-right (H) 431.Encode-N-ary-Tree-to-Binary-Treearrow-up-right (H-) 1516.Move-Sub-Tree-of-N-Ary-Treearrow-up-right (H-)

似树非树

823arrow-up-right, 1902arrow-up-right,

Basics

307.Range-Sum-Query-Mutablearrow-up-right (H-) 1526.Minimum-Number-of-Increments-on-Subarrays-to-Form-a-Target-Arrayarrow-up-right (H-) 1649.Create-Sorted-Array-through-Instructionsarrow-up-right (H-) 1157.Online-Majority-Element-In-Subarrayarrow-up-right (H)

Lazy Tag

370.Range-Additionarrow-up-right (H) 218.The-Skyline-Problemarrow-up-right (H+) 699.Falling-Squaresarrow-up-right (H)

Others

715.Range-Modulearrow-up-right (H)

[Binary Index Tree]

307.Range-Sum-Query-Mutablearrow-up-right (M) 1649.Create-Sorted-Array-through-Instructionsarrow-up-right (H)

Last updated