题目描述
给定一个二叉树,检查它是否是镜像对称的。
递归
参考自:https://leetcode-cn.com/problems/symmetric-tree/solution/dong-hua-yan-shi-101-dui-cheng-er-cha-shu-by-user7/
https://leetcode-cn.com/problems/symmetric-tree/solution/hua-jie-suan-fa-101-dui-cheng-er-cha-shu-by-guanpe/
镜像对称,就是左右两边相等,也就是左子树和右子树是相等的。
递归结束条件:
- 节点值都为空返回 true;
- 节点值有一个为空返回false;
- 当前两个节点值不相等返回 false
递归过程:
- 判断当前节点值是否相等
- 判断 A 的左子树 与 B 的右子树是否对称(相等)
- 判断 A 的右子树 与 B 的左子树是否对称(相等)
时间复杂度: O(n),因为要遍历 n 个节点
空间复杂度: O(n),空间复杂度是递归的深度也就是跟树高度有关,最坏情况下树变成一个链表结构,高度为 n。