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

题目】:

  给定一棵二叉树的头节点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)内返回所有查询的结果

题目来源:左程云老师《程序员代码面试指南》

猜你喜欢

转载自www.cnblogs.com/latup/p/10204733.html
今日推荐