美文网首页
【算法】代码解决 二叉树 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