Coding Interview

[LeetCode] DFS 101. Symmetric Tree

milliwonkim 2022. 9. 26. 19:47
반응형
SMALL

문제

Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).

 

Example 1:

Input: root = [1,2,2,3,4,4,3]
Output: true

Example 2:

Input: root = [1,2,2,null,3,null,3]
Output: false

 

Constraints:

  • The number of nodes in the tree is in the range [1, 1000].
  • -100 <= Node.val <= 100

코드

var isSymmetric = function(root) {    
    function dfs(leftRoot, rightRoot) {
        if(!leftRoot && !rightRoot) return true;
        if(!leftRoot || !rightRoot || leftRoot.val !== rightRoot.val) return false;
        
        // 양 바깥 쪽
        const left = dfs(leftRoot.left, rightRoot.right);
        // 안쪽
        const right = dfs(leftRoot.right, rightRoot.left);
        return left && right;
    }
    
    return dfs(root.left, root.right);
}
반응형
LIST