//最近公共父节点
public class TreeNode{
TreeNode left;
TreeNode right;
int value;
TreeNode(int value){
this.value=value;
}
public static TreeNode LowestCommonAncestor(TreeNode head,TreeNode first,TreeNode second){
if(head==null|| head.value==first.value|| head.value==second.value)
return head;
TreeNode left=LowestCommonAncestor(head.left,first,second);
TreeNode right=LowestCommonAncestor(head.right,first,second);
if((left!=null)&&(right!=null)){
return head;
}
return left!=null?left:right;
}
public static void main(String[]args){
TreeNode node1=new TreeNode(1);
TreeNode node2=new TreeNode(2);
TreeNode node3=new TreeNode(3);
TreeNode node4=new TreeNode(4);
TreeNode node5=new TreeNode(5);
TreeNode node6=new TreeNode(6);
node1.left=node2;
node1.right=node3;
node2.left=node4;
node2.right=node5;
node4.right=node6;
System.out.println(LowestCommonAncestor(node1,node6,node5).value);
}
}