7

非二分木は通常どのように表されますか? ノードが持つことができる子の数に制限がないツリー。Adjacency Matrix または Adjacency List を使用して、サイクルがないと仮定するか、この質問に似たことを行うのが最善ですか ->

非二分木を実装する方法

n分木がある場合のフォローアップの質問(それはそれらの正しい名前ですか?)その木の2つの特定のノード/データ値の最小共通祖先を見つける良い方法は何ですか? 私が見つけることができるのは、このような二分木を扱うアルゴリズムだけです->

static Node lca(Node root,int v1,int v2)
{
  if (root == null || root.data == v1 || root.data == v2) {
    return root;
  }

  Node left = lca(root.left, v1, v2);
  Node right = lca(root.right, v1, v2);

  if (left != null && right != null) {
    return root;
  }

  return (left != null) ? left : right;
}
4

1 に答える 1