• 二叉树的最近公共祖先


    1、题目描述:

    https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/

    2、思路:

      看官方题解,深入理解深度优先遍历

    3、代码

    package 二叉树;
    
    public class 二叉树的公共父节点 {
        public static void main(String[] args) {
    
    
        }
    
        public TreeNode ans = null;
    
        // x节点 (左子树包含p && 右子树包含q)((根节点就是p || 根节点就是q)&& (右子树含有p || 左子树含有q)这个节点就是公共父节点
        public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
            dfs(root, p, q);
            return ans;
        }
        
        // 本道题能够让我们更好的理解深度优先遍历
        public boolean dfs(TreeNode root, TreeNode p, TreeNode q) {
            if (root == null) {
                return false;
            }
            //深入到左子树,到底返回到本层
            boolean lson = dfs(root.left, p, q);
            //继续深入到右子树,到底返回去到本层
            boolean rson = dfs(root.right, p, q);
            if (lson && rson || ((root.val == p.val || root.val == q.val) && (lson || rson))) {
                ans = root;
            }
            return lson || rson || (root.val == p.val || root.val == q.val);
        }
    
        static class TreeNode {
            int val;
            TreeNode left;
            TreeNode right;
    
            TreeNode(int val) {
                this.val = val;
            }
        }
    
    }

    。。

  • 相关阅读:
    github设置添加SSH
    pythonanywhere笔记
    Python3x 爬取妹子图
    python3.4 百度API接口
    简易博客开发(8)----django1.9 博客部署到pythonanywhere上
    Python3.4+Django1.9+Bootstrap3
    docker搭建私有仓库之harbor
    docker新手常见问题和知识点
    node之sinopia搭建本地npm仓库
    rancher-HA快速搭建
  • 原文地址:https://www.cnblogs.com/guoyu1/p/15253997.html
Copyright © 2020-2023  润新知