给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:falses
思路:我刚开始是想着用一个函数直接解决,但是后面发现无法进行判断。所以需要再创建一个可以传递两个参数的函数,这样我们就可以分别将左右子树传递进来并进行判断
public boolean isSymmetric(TreeNode root) {//如果root为空或者是只有一个节点的树 则返回ture 如果root只有一个左子树或者只有一个右子树返回false;若值相等并且左子树的左孩子==右子树的右孩子 左子树的右孩子==右子树的左孩子//创建一个新的函数来判断两棵树是否轴对称return check(root,root);}public boolean check(TreeNode p, TreeNode q){if(p==null && q==null)return true;else if(p==null || q==null)return false;else{if(p.val==q.val)return check(p.left,q.right) && check(p.right,q.left);//需要去判断p的左子树和q的右子树是否相等,以及p的右子树和q的左子树是否相等elsereturn false;}}