#include using namespace std; struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(): val(0),left(nullptr), right(nullptr){} TreeNode(int x): val(x),left(nullptr), right(nullptr){} TreeNode(int x, TreeNode *left, TreeNode *right): val(x),left(left), right(right){} }; class Solution{ public: int pseudoPalindromicPaths (TreeNode* root) { const int length_limit = 1e5; int state[10]={}; return find(root, state); } bool judge_is_permutation(int odd,int even){ if(odd<=1) return true; else return false; } int find(TreeNode* Node, int* state){ state[Node->val] += 1; if(Node->left == NULL && Node->right == NULL){ int odd = 0; int even = 0; for(int i = 1 ; i <= 9 ;i++){ if(state[i] > 0){ if(state[i]%2) odd++; else even++; } } // for(int i = 1 ;i <=9;i++){ // cout<val]-=1; return 1; } else{ state[Node->val]-=1; return 0; } } int rlt = 0; if(Node->left!= NULL){ rlt += find(Node->left,state); } if(Node->right!= NULL){ rlt += find(Node->right,state); } state[Node->val]-=1; return rlt; } }; int main(){ return 0; }