zoukankan      html  css  js  c++  java
  • leetcode: Symmetric Tree

    判断一棵树是否对称,如果对称,中序遍历的结果一定也是对称的。

        public boolean isSymmetric(TreeNode root) {
            // Start typing your Java solution below
            // DO NOT write main() function
            if(root == null) return true;
            
            ArrayList<Integer> ret = new ArrayList<Integer>();
            inorder(root, ret);
            for(int i=0, j=ret.size()-1; i<j; i++, j--){
                if(ret.get(i) != ret.get(j))
                    return false;
            }
            return true;
        }
        
        public void inorder(TreeNode root, ArrayList<Integer> ret){
            if(root == null) return;
            if(root.left!=null)
                inorder(root.left, ret);
            ret.add(root.val);
            if(root.right!=null)
                inorder(root.right, ret);
        }

    看了一下别人的代码,也可以在递归的过程中直接去判断。

        public boolean isSymmetric(TreeNode root) {
            // Start typing your Java solution below
            // DO NOT write main() function
            if(root== null) return true;
    
            return ifSymmetric(root.left, root.right);        
        }
    
        public boolean ifSymmetric(TreeNode tree1, TreeNode tree2){
            if(tree1==null && tree2==null)
                return true;
            else if(tree1 == null || tree2 == null)
                return false;
    
            if(tree1.val != tree2.val)
                return false;
            else
                return (ifSymmetric(tree1.left, tree2.right) && ifSymmetric(tree1.right, tree2.left));
        }
  • 相关阅读:
    PHP异常与错误处理机制
    工作中图片上传遇到的一个问题
    PHP遍历目录四种方法
    ssh框架中.xml文件小技巧分离xml
    读取XML文件内容
    spring_AOP
    spring_AOP_XML
    spring_AOP_annotation
    js异步刷新局部页面
    HQL count(*)
  • 原文地址:https://www.cnblogs.com/nanpo/p/3219905.html
Copyright © 2011-2022 走看看