cousins-in-binary-tree
Problem
Problem Description
Solution
BFS -- level by level check whether current level encounter both x and y node, is yes, then compare their parents nodes.
construct Node to store node x parent(int parent) and whether encountered(boolean isCurr)
use queue to store all treenodes in the same level. ie. example 1, level 0 {1} level 1 {2, 3}, level 2 {4}
for each level, we check whether next level node is x node, if yes, store in Node xn{curr.val, true}.
after one level traverse, check whether found x and y, if yes, compare parents
if x and y parents are the same, continue.
if x and y parents are not the same, then return true, already found
if only found x or y, then return false.
after traverse all nodes, then return fase.
For example
Complexity Analysis
Time Complexity: O(N)
Space Complexity: O(N)
N - the number of treenodes
Code
Last updated