872. 잎을 닮은 나무

설명:



이진 트리의 모든 잎을 왼쪽에서 오른쪽으로 고려하면 해당 잎의 값이 잎 값 시퀀스를 형성합니다.

해결책:



시간 복잡도 : O(n)
공간 복잡도: O(n)

// DFS approach
// Staring from the left side of the tree, 
// push all leaf nodes from each root into 2 respective arrays
// Check if the values in those 2 arrays are the same
var leafSimilar = function(root1, root2) {
    const output1 = []
    const output2 = []

    dfs(root1, output1)
    dfs(root2, output2)

    return (output1.length == output2.length &&
            output1.every((val, index) => val === output2[index]));

    function dfs(node, output) {
        if(!node) return
        // Leaf node if the current ndoe has no children
        // Push value into it's respective array
        if(!node.left && !node.right) {
            output.push(node.val)
            return
        }
        if(node.left) dfs(node.left, output)
        if(node.right) dfs(node.right, output)
    }
};

좋은 웹페이지 즐겨찾기