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));
        }
  • 相关阅读:
    使用yield实现一个协成
    串讲-Python基础练习
    Linux练习
    列表生成式
    Jupyter Notebook的快捷键帮助文档
    mysql字段类型
    爬取12306火车票信息
    【Lodop】02 C-Lodop手册阅读上手
    【Lodop】01 Lodop手册阅读上手
    【Redis】06 事务
  • 原文地址:https://www.cnblogs.com/nanpo/p/3219905.html
Copyright © 2011-2022 走看看