LeetCode 101. Symmetric Tree
LeetCode 101. Symmetric Tree (对称二叉树)
题目
链接
https://leetcode-cn.com/problems/symmetric-tree
问题描述
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
示例
输入:root = [1,2,2,3,4,4,3]
输出:true
提示
树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100
思路
递归的思路,根节点无需比较,然后左右互相比较。
复杂度分析
时间复杂度 O(n)
空间复杂度 O(n)
代码
Java
public boolean compare(TreeNode l, TreeNode r) {
if (l == null && r == null) {
return true;
}
if (l == null || r == null) {
return false;
}
if (l.val == r.val) {
return compare(l.left, r.right) && compare(l.right, r.left);
} else {
return false;
}
}
public boolean isSymmetric(TreeNode root) {
if (root == null) {
return true;
} else {
return compare(root.left, root.right);
}
}