码迷,mamicode.com
首页 > 编程语言 > 详细

3.19 Tarjan算法与并查集解决二叉树节点间最近公共祖先的批量查询问题

时间:2019-01-01 16:06:40      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:查询   pre   语句   class   tarjan   query   并查集   一个   代码   

题目】:

  如下的Node类是标准的二叉树节点结构:

1 public class Node{
2         public int value;
3         public Node left;
4         public Node right;
5 
6         public Node(int data){
7                 this.value = data;
8         }
9 }

  再定义Query类如下:

1 public class Query{
2         public Node o1;
3         public Node o2;
4 
5         public Query(Node o1, Node o2){
6                 this.o1 = o1;
7                 this.o2 = o2;
8         }
9 }

  一个Query类的实例表示一条查询语句,表示想要查询o1节点和o2节点的最近公共祖先节点

  给定一棵二叉树的头节点head,并给定所有的查询语句,即一个Query类型的数组Query[] ques,请返回Node类型的数组Node[] ans,ans[i]代表ques[i]这条查询的答案,即ques[i].o1和ques[i].o2的最近公共祖先

 

要求】:

  如果二叉树的节点数为N,查询语句的条数为M,整个处理过程的时间复杂度要求达到O(N+M)

 

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

3.19 Tarjan算法与并查集解决二叉树节点间最近公共祖先的批量查询问题

标签:查询   pre   语句   class   tarjan   query   并查集   一个   代码   

原文地址:https://www.cnblogs.com/latup/p/10204914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!