【题目】:
给定一棵二叉树的头节点head,以及这棵树中的两个节点o1和o2,请返回o1和o2的最近公共祖先节点
例如,如下图所示的二叉树:
1
2 3
4 5 6 7
8
节点4和节点5的最近公共祖先节点为节点2,节点5和节点2的最近公共祖先节点为节点2,节点6和节点8的最近公共祖先节点为节点3,节点5和节点8的最近公共祖先节点为节点1
【进阶】:
如果查询两个节点的最近公共祖先的操作十分频繁,想法让单条查询的查询时间减少
扫描二维码关注公众号,回复:
4735585 查看本文章
【进阶】:
给定二叉树的头节点head,同时给定所有想要进行的查询。二叉树的节点数量为N,查询条数为M,请在时间复杂度为O(N+M)内返回所有查询的结果
题目来源:左程云老师《程序员代码面试指南》