题目
给你一个二叉树的根节点 root , 检查它是否轴对称。
解题思路
1、使用递归
- 通过不断递归判断两棵子树的左右节点是否对称
2、使用队列(第一次接触的方法)
- 通过使用队列记录两棵子树所在对称位置的节点值,每次两个节点出队列,判断是否相等
代码
使用递归
function isSimiliar(root){
if(root == null) return true;
return check(root.left,root.right)
}
function check(leftTree,rightTree){
//两棵子树同时为空,则对称
if(!leftTree && !rightTree) return true
//两棵子树只有一个为空,则不对称
//从上面的判断我们已经知道了两个子树不可能同时为空
if(!leftTree || rightTree) return false
//当两棵树根节点值相等时,进一步判断左子树的左节点是否与右子树的右节点相等,左子树的右节点是否与右子树的左节点相等,如此递归下去
return (leftTree.val