tree
144.Binary-Tree-Preorder-Traversal (M+) 145.Binary-Tree-Postorder-Traversal (H-) 270.Closest-Binary-Search-Tree-Value (M+) 095.Unique-Binary-Search-Trees-II (H) 094.Binary Tree Inorder Traversal (H-) 110.Balanced-Binary-Tree (M+) 124.Binary-Tree-Maximum-Path-Sum (M+) 222.Count-Complete-Tree-Nodes (M+) 099.Recover-Binary-Search-Tree (H) 114.Flatten-Binary-Tree-to-Linked-List (M+) 098.Validate-Binary-Search-Tree (M) 117.Populating Next Right Pointers in Each Node II (H) 156.Binary-Tree-Upside-Down (H) 285.Inorder-Successor-in-BST (M) 298.Binary-Tree-Longest-Consecutive Sequence (M+) 450.Delete-Node-in-a-BST (H) 437.Path-Sum-III (H-) 333.Largest-BST-Subtree (H) 543.Diameter-of-Binary-Tree (M+) 572.Subtree-of-Another-Tree (M) 549.Binary-Tree-Longest-Consecutive-Sequence-II (M) 173.Binary-Search-Tree-Iterator (M) 545.Boundary-of-Binary-Tree (H-) 272.Closest-Binary-Search-Tree-Value-II (M+) 310.Minimum-Height-Trees (H-) 226.Invert-Binary-Tree (M) 655.Print-Binary-Tree (M+) 897.Increasing-Order-Search-Tree (M+) 501.Find-Mode-in-Binary-Search-Tree (M+) 558.Quad-Tree-Intersection (M+) 662.Maximum-Width-of-Binary-Tree (H-) 687.Longest-Univalue-Path (M+) 742.Closest-Leaf-in-a-Binary-Tree (H) 834.Sum-of-Distances-in-Tree (H) 863.All-Nodes-Distance-K-in-Binary-Tree (H-) 958.Check-Completeness-of-a-Binary-Tree (M+) 1339. Maximum-Product-of-Splitted-Binary-Tree (TBD) 1104.Path-In-Zigzag-Labelled-Binary-Tree (M+) 1660.Correct-a-Binary-Tree (M+) 1666.Change-the-Root-of-a-Binary-Tree (H-) 1932.Merge-BSTs-to-Create-Single-BST (H) 2003.Smallest-Missing-Genetic-Value-in-Each-Subtree (H)
Serialization & Hashing
297.Serialize-and-Deserialize-Binary-Tree (H-) 652.Find-Duplicate-Subtrees (H) 1948.Delete-Duplicate-Folders-in-System (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-Traversal (H-) 106.Construct-Binary-Tree-from-Inorder-and-Postorder-Traversal (M+) 331.Verify-Preorder-Serialization-of-a-Binary-Tree (H) 449.Serialize-and-Deserialize-BST (H) 971.Flip-Binary-Tree-To-Match-Preorder-Traversal (M+) 1028.Recover-a-Tree-From-Preorder-Traversal (H-) 1569.Number-of-Ways-to-Reorder-Array-to-Get-Same-BST (H) 1597.Build-Binary-Expression-Tree-From-Infix-Expression (H) 1902.Depth-of-BST-Given-Insertion-Order (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-Tree (H) 1676.Lowest-Common-Ancestor-of-a-Binary-Tree-IV (M+) 1740.Find-Distance-in-a-Binary-Tree (H)
N-ary Tree
428.Serialize-and-Deserialize-N-ary-Tree (H) 431.Encode-N-ary-Tree-to-Binary-Tree (H-) 1516.Move-Sub-Tree-of-N-Ary-Tree (H-)
似树非树
Basics
307.Range-Sum-Query-Mutable (H-) 1526.Minimum-Number-of-Increments-on-Subarrays-to-Form-a-Target-Array (H-) 1649.Create-Sorted-Array-through-Instructions (H-) 1157.Online-Majority-Element-In-Subarray (H)
Lazy Tag
370.Range-Addition (H) 218.The-Skyline-Problem (H+) 699.Falling-Squares (H)
Others
715.Range-Module (H)
[Binary Index Tree]
307.Range-Sum-Query-Mutable (M) 1649.Create-Sorted-Array-through-Instructions (H)
Last updated