美文网首页
【算法】代码解决 二叉树 binary tree相关问题

【算法】代码解决 二叉树 binary tree相关问题

作者: 李翾 | 来源:发表于2019-03-18 17:03 被阅读0次

    求二叉树的最大深度 Maximum Depth of Binary Tree

    例如: 给定一个二叉树[3,9,20,null,null,15,7]


    image.png
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
       public int maxDepth(TreeNode root) {
            if(root==null){
                return 0;
            }
            return 1+Math.max(maxDepth(root.left),maxDepth(root.right));
        }
    }
    

    判断是不是对称树 Symmetric Tree

    例如:[1,2,2,3,4,4,3]是对称树。


    image.png

    [1,2,2,null,3,null,3] 就不是


    image.png
    /**
     * 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) {
        return root==null || isSymmetricHelp(root.left, root.right);
    }
    
    private boolean isSymmetricHelp(TreeNode left, TreeNode right){
        if(left==null || right==null)
            return left==right;
        if(left.val!=right.val)
            return false;
        return isSymmetricHelp(left.left, right.right) && isSymmetricHelp(left.right, right.left);
    }
    }
    
    

    相关文章

      网友评论

          本文标题:【算法】代码解决 二叉树 binary tree相关问题

          本文链接:https://www.haomeiwen.com/subject/xxavmqtx.html