-1
A
回答
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);
}
}
注:更好地將使用非遞歸的方式,在那裏你可以,只要你找到兩個以上的孩子退出循環。
+0
當一個子節點有兩個父節點時,它不會工作。我爲這個問題添加了一個圖片。 –
相關問題
- 1. 在二叉樹中查找循環
- 2. 用while循環搜索二叉樹
- 3. 如何在R中循環二叉樹路徑?
- 4. 如何二叉樹
- 5. 如何使用Junit測試二叉樹?
- 6. R中的二叉樹中的雙循環
- 7. 檢查二叉樹是否爲二叉搜索樹的函數?
- 8. 二叉樹中最大的二叉樹搜索樹
- 9. Java中二叉樹的遞歸檢查
- 10. 二叉樹 - 哪一種二叉樹
- 11. 二叉樹到二叉搜索樹(BST)
- 12. 如何創建二叉樹(非二叉搜索樹)
- 13. 如何扭轉二叉樹
- 14. 如何建立二叉樹
- 15. 如何製作二叉樹?
- 16. 如何打印二叉樹?
- 17. 如何創建二叉樹
- 18. 通過for循環設置二叉樹節點的左屬性
- 19. 帶有無限循環的二叉樹實現
- 20. 二叉樹findHeight
- 21. balanced()二叉樹
- 22. 二叉樹
- 23. 二叉樹
- 24. JAVA:二叉樹
- 25. 二叉樹
- 26. 二叉樹
- 27. 非二叉樹
- 28. 二叉樹葉
- 29. Python二叉樹
- 30. 二叉樹值
請包括一些關於您正在使用的語言以及您目前嘗試使用的語言的信息。 –
@Piyush - ref。到https://en.wikipedia.org/wiki/Binary_tree瞭解二叉樹的完整定義,我希望你知道。所以,如果每個節點最多有兩個孩子,那麼它就是一棵二叉樹。 –
此外,你的問題並沒有被清除,就像你想要達到的目標以及你想要用哪種語言來完成。我可以用C++,C#和其他幾種語言編寫二進制樹的程序,但爲了更加清晰,請修改您的問題。 –