• 求一颗二叉树中两个节点的最低公共父节点


    题目:求一棵二叉树中两个节点的最低公共父节点

    思路:递归 和 非递归

    public static TreeNode getLastCommonParentRec(TreeNode root, TreeNode node1, TreeNode node2) {
            if (found(root.left, node1)) {
                if (found(root.right, node2)) {
                    return root;
                } else {
                    return getLastCommonParentRec(root.left, node1, node2);
                }
            } else {
                if (found(root.left, node2)) {
                    return root;
                } else {
                    return getLastCommonParentRec(root.right, node1, node2);
                }
            }
        }
    
        public static boolean found(TreeNode root, TreeNode node) {
            if (root == null || node == null)
                return false;
            if (root == node)
                return true;
            boolean found = found(root.left, node);
            if (!found) {
                found = found(root.right, node);
            }
            return found;
        }

    简洁版递归:

    public static TreeNode getLastCommonParentRec2(TreeNode root, TreeNode node1, TreeNode node2) {
            if (root == null)
                return null;
            if (root.equals(node1) || root.equals(node2)) {
                return root;
            }
            TreeNode left = getLastCommonParentRec2(root.left, node1, node2);
            TreeNode right = getLastCommonParentRec2(root.right, node1, node2);
    
            if (left != null && right != null) {
                return root;
            }
    
            if (left != null)
                return left;
            return right;
        }
  • 相关阅读:
    [uoj418]三角形
    [atARC142F]Paired Wizards
    [loj6746]区间众数
    Can't create component 'xx.xx.xxAppService' as it has dependencies to be satisfied.
    ASP.NET Zero Power Tool 使用报错 Config file not found
    RXJS 5.5以上finally()转变为finalize()
    线程交换数据
    Tomcat系统架构
    工具
    MySQL 执行流程
  • 原文地址:https://www.cnblogs.com/lfdingye/p/7372541.html
Copyright © 2020-2023  润新知