题目考察的知识点:树的遍历
题目解答方法的文字分析:将树的叶子结点插入到一个数组中,然后比较两个数组是否逆序。
本题解析所用的编程语言:c++
void dfs(TreeNode* node, vector<int>& seq) { if (!node->left && !node->right) seq.push_back(node->val); else { if (node->left) dfs(node->left, seq); if (node->right) dfs(node->right, seq); } } bool leafSimilar(TreeNode* root1, TreeNode* root2) { vector<int> seq1; if (root1) dfs(root1, seq1); vector<int> seq2; if (root2) dfs(root2, seq2); for (int i = 0, j = seq2.size() - 1; i < seq1.size(); ++i, --j) { if (seq1[i] != seq2[j]) return false; } return true; }