avatar

LeetCode-101 对称二叉树

📝题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
给定一个二叉树,检查它是否是镜像对称的。 

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

1
/ \
2 2
/ \ / \
3 4 4 3 

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

1
/ \
2 2
\ \
3 3


📝思路

递归,思路与 LeetCode-572 另一个树的子树 类似。

📝题解

1
2
3
4
5
6
7
8
9
10
bool isSymmetricTree(TreeNode* root1, TreeNode* root2){ //辅助函数
if (root1 == NULL && root2 == NULL) return true;
if (root1 == NULL || root2 == NULL) return false;
return (root1->val == root2->val && isSymmetricTree(root1->left, root2->right) && isSymmetricTree(root1->right, root2->left));
}

bool isSymmetric(TreeNode* root){ //主函数
if (root == NULL) return true;
return isSymmetricTree(root->left, root->right);
}
Author:WhiteBeerHouse
Link:https://github.com/WhiteBeerHouse/WhiteBeerHouse.github.io/tree/master/2020/05/07/LeetCode-101-%E5%AF%B9%E7%A7%B0%E4%BA%8C%E5%8F%89%E6%A0%91/
Copyright Notice:All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.