题目考查的知识点
题目解答方法的文字解析
- 题目大意是判断两颗二叉树是否正好是逆序
- 使用递归将遍历的结果记录到数组中
- 判断两个数组是否是逆序的
本题解析所用的编程语言
完整且正确的编程代码
class Solution {
vector<int>l,r;
public:
bool leafSimilar(TreeNode* root1, TreeNode* root2) {
dfs(root1, l);
dfs(root2, r);
if (l.size() != r.size()) return false;
int n = l.size();
for (int i = 0; i < n; i++) {
if (l[i] != r[n-i-1]) return false;
}
return true;
}
void dfs(TreeNode* root, vector<int>& list) {
if (root == nullptr) return;
dfs(root->left, list);
if (root->left == nullptr && root->right == nullptr) {
list.push_back(root->val);
}
dfs(root->right, list);
}
};