二叉树习题(下)

Posted *平芜尽处是春山*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树习题(下)相关的知识,希望对你有一定的参考价值。

二叉树习题(下)

剑指 Offer 55 - I. 二叉树的深度

class Solution 
    public int maxDepth(TreeNode root) 
        if(root == null) 
            return 0;
        
        return 1 + Math.max(maxDepth(root.left),maxDepth(root.right));
    

运行截图:

力扣236.二叉树的最近公共祖先

class Solution 
    TreeNode lca;
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) 
        if (root == null) 
            return null;
        
        find(root,p,q);
        return lca;
    
    private boolean find(TreeNode root, TreeNode p, TreeNode q) 
        if (root == null) 
            return false;
        
        int left = find(root.left,p,q) ? 1 : 0;
        int right = find(root.right,p,q) ? 1 : 0;
        int mid = (root == p || root == q) ? 1 : 0;
        if (left + right + mid == 2) 
            lca = root;
            return true;
        
        return (left + right + mid) > 0;
    

运行截图:

力扣606. 根据二叉树创建字符串

class Solution 
    StringBuilder sb = new StringBuilder();
    public String tree2str(TreeNode root) 
        if(root == null) 
            return " ";
        
        preOrder(root);
        return sb.toString();
    

    private void preOrder(TreeNode root) 
        if(root == null) 
            return;
        
        sb.append(root.val);
        if(root.left != null) 
            sb.append("(");
            preOrder(root.left);
            sb.append(")");
     else 
        if(root.right != null) 
            sb.append("()");
        
    
    if(root.right != null) 
        sb.append("(");
        preOrder(root.right);
        sb.append(")");
    
    

运行截图:

以上是关于二叉树习题(下)的主要内容,如果未能解决你的问题,请参考以下文章

二叉树练习题3-最近公共祖先

习题整理,二叉树后续遍历得到指定节点到其祖先的路径

二叉树有关习题整理145二叉树的后序遍历 94二叉树的中序遍历 572另一棵树的子树 236二叉树的最近公共祖先 JZ36二叉搜索树与双向链表 - 牛客

数据结构求两节点的最近共同祖先,用二叉链表作为存储结构,严蔚敏习题集答案如下,一疑点求解释

在给定二叉树中的两个值的情况下找到最不共同的祖先[关闭]

二叉树:公共祖先问题