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;
}
}
};