1var pseudoPalindromicPaths = function (root) {2if (!root) return 0;3// if even it's zero or it's power of two when odd4const ways = (r = root, d = 0) => {5if (!r) return 0;6d = d ^ (1 << r.val);7// leaf8if (r.left == r.right && r.left == null) {9const hasAllEven = d == 0;10const hasOneOdd = (d ^ (d & -d)) == 0;11return Number(hasEven || hasOneOdd);12}13return ways(r.left, d) + ways(r.right, d);14};15return ways();16};