1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
public class Solution { public int pseudoPalindromicPaths(TreeNode root) { return dfs(root, 0); }
private int dfs(TreeNode root, int mask) { if (root == null) return 0; mask ^= 1 << root.val; if (root.left == root.right) { return (mask & (mask - 1)) == 0 ? 1 : 0; } return dfs(root.left, mask) + dfs(root.right, mask); } }
|