剑指offer--对称的二叉树(递归)

来源:互联网 发布:酷宝数据 编辑:程序博客网 时间:2024/06/06 05:11
题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。


递归入口,被遍历节点的左右节点;

处理情况:左右只有一个空--false;左右都不空--比较值;左右都空--true


public class 对称的二叉树 {class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}public static void main(String[] args) {// TODO Auto-generated method stub}    boolean isSymmetrical(TreeNode pRoot)    {    if (pRoot==null) {return true;}return mirror(pRoot.left,pRoot.right);    }    /*同一个节点的左右子树*/private boolean mirror(TreeNode left, TreeNode right) {/*左子树和右子树是否为空*/if (left==null) {return right==null;}if (right==null) {return false;}if (left.val!=right.val) {return false;}return mirror(left.left, right.right)&&mirror(left.right, right.left);}}


原创粉丝点击