答案 0 :(得分:1)
我们可以进行任何类型的遍历,例如预序,后序或有序,并检查是否有任何节点按遍历顺序出现多次。如果是,则存在一个循环。
答案 1 :(得分:0)
您可以遍历树并检查每个父项是否包含两个或更少的子项,否则它不是二叉树。
递归方式:
flag = true;
traverse(Node node){
if(node == null || !flag)
return;
//Check for more than two children, if yes not binary tree, exit
if(node.getChilds().length > 2){
flag = false;
return;
}
// Go through each nodes
for(Node child : node.getChilds()) {
traverse(child);
}
}
注意:最好使用非递归方式,一旦找到两个以上的孩子就可以退出循环。