题解 | #相逆叶子#
相逆叶子
https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3
最好理解的代码,真的好理解。
知识点:
二叉树/DFS
分析:
用个不笨也笨的方法吧,对每一个二叉树使用DFS存储其叶子节点,存储在一个数组里,然后判断回文。
ac代码C++;
vector<int> leaf; int cnt1 = 0; void dfs(TreeNode* root1) { if (!root1->left && !root1->right) { leaf.push_back(root1->val); cnt1++; return; } if(root1->left) dfs(root1->left); if(root1->right) dfs(root1->right); } bool leafSimilar(TreeNode* root1, TreeNode* root2) { dfs(root1); dfs(root2); int i = 0;int j = cnt1 - 1; while(i < j){ if(leaf[i] == leaf[j]) { i++;j--; }else return false; } return true; }