题解 | #在二叉树中找到两个节点的最近公共祖先#

在二叉树中找到两个节点的最近公共祖先

http://www.nowcoder.com/practice/e0cc33a83afe4530bcec46eba3325116

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     *
     * @param root TreeNode类 
     * @param o1 int整型 
     * @param o2 int整型
     * @return int整型
     */
    public int lowestCommonAncestor (TreeNode root, int o1, int o2) {
        ArrayList<Integer> array1 = new ArrayList<>();
        ArrayList<Integer> array2 = new ArrayList<>();
        searchOnTree(root, array1, o1);
        searchOnTree(root, array2, o2);
        int result = 0;
        int index1 = array1.size() - 1;
        int index2 = array2.size() - 1;
        while (index1 >= 0 && index2 >= 0 && array1.get(index1) == array2.get(index2)) {
            result = array1.get(index1);
            index1--;
            index2--;
        }
        return result;
    }

    private boolean searchOnTree(TreeNode root, ArrayList<Integer> array, Integer target) {
        if (root == null) {
            return false;
        }
        boolean isSearch = root.val==target || searchOnTree(root.left, array, target) || searchOnTree(root.right,
                array, target);
        if (isSearch) {
            array.add(root.val);
        }
        return isSearch;
    }
}
全部评论

相关推荐

ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
10-20 15:26
门头沟学院 Java
桥头牛油火锅:这个比例不正常,简历的话项目经历放中间,项目功能分点可以再明确点,前面加“·”或者“1 2 3”,另外简历上的照片可以去外面摄影店拍一下,以后也会用到的,hr筛人也是多少会看的,毕竟世界是一个巨大的卡颜局嘛,还有有些hr由于消息太多可能没看到,后面可能会回来找你,要简历的还会多一点,我也是普2本,比例大致是600:90:15:3,当然我实力不太够,拿的offer比较少,慢慢来吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务