Pseudo-Palindromic Paths in a Binary Tree
给一个二叉树, 求一条path上的数字能不能通过重新排列组成回文.
因为数字是1-9, 所以直接counting奇数个数即可.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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; } } }; |