当前位置: 代码迷 >> J2SE >> 一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节点)的个数.该如何解决
  详细解决方案

一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节点)的个数.该如何解决

热度:281   发布时间:2016-04-24 02:24:46.0
一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节点)的个数.
分不够还加呀!

------解决方案--------------------
这个用递归就够了
根节点有2个子节点的话就是 两棵子树中单节点数之和
根节点有1个子节点的话就是 1 + 子树中单节点数
------解决方案--------------------
Java code
public void countNodes(BiTree bt) {    if (bt.lchild != null && bt.rchild == null) {        ++count; //设置一个全局计数器    }        countNodes(bt.lchild);        countNodes(bt.rchild);    }
------解决方案--------------------
有点不对
------解决方案--------------------
Java code
public void countNodes(BiTree bt) {        if (bt.lchild != null && bt.rchild == null) {            ++count;            countNodes(bt.lchild);        } else if (bt.lchild == null && bt.rchild != null) {            ++count;            countNodes(bt.rchild);        }    }
------解决方案--------------------
2楼 4楼 不是一样的啊。。。
  相关解决方案