最少共同的祖先算法变异

时间:2014-08-26 05:43:07

标签: algorithm tree

    root
    /   \
    A     B
  / | \  / \
  C D E F   G
 |         |
 H         I

给定一个树和一个类型列表{C,D,E,F}。摘要是{A,F} (正如CDE暗示A)

如果类型列表是{C,D,E,F,I}。摘要是root(如cde暗示a,i暗示g,gf暗示b,ab暗示root)。

在较高的层面上,查找摘要的算法如何工作? (仅限伪代码)

1 个答案:

答案 0 :(得分:1)

伪代码,一个简单的树遍历

String getSummary(Node node){
  if(node contains element in the set)
    return node name;
  else
    String result = "";
    for(Node child : node.getChildren){
        if(child contains element in the set)
           result += getSummary(child);
    }
    if(result are all the name of its children)
       return node name;
    return result;