熊二 | C++ | #相逆叶子#
相逆叶子
https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3
题目考查的知识点
- 二叉树的遍历
- 递归遍历二叉树
题目解答方法的文字解析
- 题目大意是判断两颗二叉树是否正好是逆序
- 使用递归将遍历的结果记录到数组中
- 判断两个数组是否是逆序的
本题解析所用的编程语言
- c++
完整且正确的编程代码
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);
}
};
腾讯成长空间 5958人发布