对称的二叉树
一、题目
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
二、思路
1.首先判断根节点是否为空,空二叉树是对称的
2.根节点不为空,定义一个检测函数
{
检测左右子树是否为空的两种情况 :都为空、其中一个是空
当左右子树都不为空,需要递归遍历其他的左右子树还有节点的值是否相等
}
三、程序实现
var isSymmetric = function(root) {
//空二叉树是对称的
if(!root){
return true;
}
//检测函数
var check=(node1,node2)=>{
//左右子树都为空
if(!node1&&!node2){
return true;
}
//其中有一个是空
if(!node1||!node2){
return false;
}
//如果左右子树都不为空,需要递归比较左右子树、当前值是否相等
return node1.val===node2.val&&check(node1.left,node2.right)&&check(node1.right,node2.left)
}
return check(root.left,root.right)
};

浙公网安备 33010602011771号