给定一个二叉树,找到该树中两个指定节点的最近公共祖先。
定义:对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。
本题采用递归的方法求解,核心思路如下:
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树T 的两个节点 p、q,最近公共祖先表示为一个节点x,满足x 是 p、q的祖先且 x的深度尽可能大(一个节点也可以是它自己的祖先)。”
第一行包含二叉树的序列化数组,节点值之间用空格隔开,空节点用null表示。 第二行包含两个整数,表示节点 p 和节点 q 的值。
输出最近公共祖先节点的值。

输入
3 5 1 6 2 0 8 null null 7 4
5 1
输出
3
节点 5 和节点 1 的最近公共祖先是节点 3。

输入
3 5 1 6 2 0 8 null null 7 4
5 4
输出
5
输入
1 2
1 2
输出
1