非二叉树通常如何表示?一个节点可以拥有的子节点数量没有限制的树。最好使用邻接矩阵或邻接列表并假设没有循环,或者做类似于这个问题的事情->
并跟进问题,当您有一个 n 叉树时(它们的名称是否正确?)在该树中找到两个给定节点/数据值的最小公共祖先的好方法是什么?我能找到的只是处理二叉树的算法,比如这个->
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;
}