[leetcode] 1457. Pseudo-Palindromic Paths in a Binary Tree 풀이

riassuc·2024년 1월 24일

[leetcode] 1457. Pseudo-Palindromic Paths in a Binary Tree 힌트

var pseudoPalindromicPaths  = function(root) {
    const set = new Set([root.val]);
    let res = 0;

    dfs(root);

    return res;

    function dfs(cur) {
        if (isLeaf(cur)) {
            res = set.size < 2 ? res + 1 : res;
            return
        } else {
            cur.left && addOrDelete(cur.left);
            cur.right && addOrDelete(cur.right);
        }
    }

    function isLeaf(cur) {
        return !cur.left && !cur.right;
    }

    function addOrDelete(cur) {
        if (set.has(cur.val)) {
            set.delete(cur.val);
            dfs(cur);
            set.add(cur.val);
        } else {
            set.add(cur.val);
            dfs(cur);
            set.delete(cur.val);
        }
    }
};
profile
riassuc

0개의 댓글