题解 | #相逆叶子#
相逆叶子
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;
}
360集团公司福利 405人发布
