zoukankan      html  css  js  c++  java
  • 101 Symmetric Tree 判断一颗二叉树是否是镜像二叉树

    给定一个二叉树,检查它是否是它自己的镜像(即,围绕它的中心对称)。
    例如,这个二叉树 [1,2,2,3,4,4,3] 是对称的。
        1
       /
      2   2
     / /
    3  4 4  3
    但是下面这个 [1,2,2,null,3,null,3] 则不是:
        1
       /
      2   2
         
       3    3
    说明:
    如果你可以递归地和迭代地解决它就奖励你点数。
    详见:https://leetcode.com/problems/symmetric-tree/description/

    Java实现:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public boolean isSymmetric(TreeNode root) {
            if(root==null){
                return true;
            }
            return helper(root.left,root.right);
        }
        private boolean helper(TreeNode left,TreeNode right){
            if(left==null&&right==null){
                return true;
            }else if(left==null||right==null){
                return false;
            }else if(left.val!=right.val){
                return false;
            }else{
                return helper(left.left,right.right)&&helper(left.right,right.left);
            }
        }
    }
    
  • 相关阅读:
    Could not find file '..inhibernate.cfg.xml'解决方法:
    图片轮播插件-carouFredSel
    C语言数组
    C语言字符串
    C语言指针基础
    python 多线程
    Andriod之Activity
    Java面向对象的编程
    C++模板编程
    关于思考
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8718031.html
Copyright © 2011-2022 走看看