Pseudo-Palindromic Paths in a Binary Tree

给一个二叉树, 求一条path上的数字能不能通过重新排列组成回文.

因为数字是1-9, 所以直接counting奇数个数即可.

class Solution {
public:
    int pseudoPalindromicPaths (TreeNode* root, vector<int> tmp = vector<int>(10,0) ) {
        if(!root){
            return 0;
        }
        tmp[root->val]++;
        if(root->left || root->right){
            return pseudoPalindromicPaths(root->left, tmp)+pseudoPalindromicPaths(root->right, tmp);
        }
        else{
            int odd = 0;
            for(auto i : tmp){
                if(i % 2 != 0){
                    odd++;
                }
            }
            return odd < 2;                
        }
    }
};