对称二叉树

对称二叉树

一、题目描述

给一个二叉树的根节点root,检查它是否为轴对称。

实例

输入:root = [1,2,2,3,4,4,3]
输出:true

输入:root = [1,2,2,null,3,null,3]
输出:false

二、解题思路

树是轴对称,遍历树,右子树要和左子树镜像对称。

三、解题思路

方法1
使用一个递归函数,有一个双指针。同时开始遍历树。指针开始都是指向根节点。p右移,q左移、p左移q右移。即可
代码实现

class Solution {
    public boolean isSymmetric(TreeNode root) {
        return check(root, root);
    }

    public boolean check(TreeNode p, TreeNode q) {
        if (p == null && q == null) {
            return true;
        }
        if (p == null || q == null) {
            return false;
        }
        return p.val == q.val && check(p.left, q.right) && check(p.right, q.left);
    }
}
posted @ 2022-09-22 00:24  z_coding  阅读(28)  评论(0)    收藏  举报