简单算法 在二叉树中找到两个节点的最近公共祖先(java)

2022-09-09 10:18:46

简单算法 在二叉树中找到两个节点的最近公共祖先(java)

描述
给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。
注:本题保证二叉树中每个节点的val值均不相同。
想法:利用递归查找o1,和o2位置,再通过判断来选择其公共祖先结点

public intlowestCommonAncestor(TreeNode root, int o1, int o2){// write code herereturnfindfather(root, o1, o2).val;}public TreeNodefindfather(TreeNode root, int o1, int o2){if(root==null|| root.val== o1|| root.val== o2)return root;
        TreeNode left=findfather( root.left,o1, o2);
        TreeNode right=findfather( root.right,o1, o2);if(left==null)return right;if(right==null)return left;return root;}
  • 作者:搞不懂语言的程序员
  • 原文链接:https://blog.csdn.net/weixin_45762066/article/details/119254270
    更新时间:2022-09-09 10:18:46