剑指offer-----判断二叉树是否对称(java版)

一 题目

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


二 思路

个人本题十分简单,就是判断每个节点是否相等,每个节点的左子树是否与右子树相等,下面直接上代码


三 程序源码

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    boolean isSymmetrical(TreeNode r1,TreeNode r2) {
        if (r1 == null&&r2 == null)
           return true;
        if (r1 == null||r2 == null)
           return false;
        return r1.val==r2.val&&isSymmetrical(r1.left,r2.right)&&isSymmetrical(r1.right,r2.left);
    }

    boolean isSymmetrical(TreeNode pRoot)
    {
        return isSymmetrical(pRoot,pRoot);
    }
}



你可能感兴趣的:(算法)