对称二叉树
Posted 微up
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对称二叉树相关的知识,希望对你有一定的参考价值。
题目
难度级别:简单
给定一个二叉树,检查它是否是镜像对称的。
例如
二叉树 [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
进阶:
你可以运用递归和迭代两种方法解决这个问题吗?
解题思路
通过深度周游算法,递归遍历分别比较2个节点,因为对称关系,所以2个节点需要满足
1:当前节点值相同
2:当前节点的left与另一个节点的right值相同;当前节点的right与另一个节点的left值相同。
之后就可以通过递归进行比较了。
const isSymmetric = function(root) {
const check = function(p,q) {
if (p == null && q == null)
return true
else if (p == null || q == null || p.val != q.val)
return false
else
return check(p.left,q.right) && check(p.right, q.left)
}
return check(root,root)
};
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/symmetric-tree
以上是关于对称二叉树的主要内容,如果未能解决你的问题,请参考以下文章
2021-10-05:对称二叉树。给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。力扣101。