东莞大朗网站建设仗剑,苗木推广做哪个网站好,上海公共招聘网个人简化版,微信推广多少钱一次给你一棵二叉树#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的#xff0c;当它满足#xff1a;路径经过的所有节点值的排列中#xff0c;存在一个回文序列。
请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 示例 1#xff1a; 输…给你一棵二叉树每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的当它满足路径经过的所有节点值的排列中存在一个回文序列。
请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 示例 1 输入root [2,3,1,3,1,null,1]
输出2
解释上图为给定的二叉树。总共有 3 条从根到叶子的路径红色路径 [2,3,3] 绿色路径 [2,1,1] 和路径 [2,3,1] 。在这些路径中只有红色和绿色的路径是伪回文路径因为红色路径 [2,3,3] 存在回文排列 [3,2,3] 绿色路径 [2,1,1] 存在回文排列 [1,2,1] 。
思路一DFS
c解法
class Solution {
public:int res 0;int hash[10] {0};void dfs(TreeNode *root){if(!root) return;hash[root - val];if(!root-left !root-right){bool flag true;bool path true;for(int i 0; i 10; i){if(hash[i] % 2 ! 0 flag){flag false;}else if(hash[i] % 2 ! 0 !flag){path false;break;}}if(path) res;hash[root-val]--;return;}dfs(root-left);dfs(root-right);hash[root-val]--;}int pseudoPalindromicPaths (TreeNode* root) {dfs(root);return res;}
};