Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序来计算树中叶节点的数量

    Java 实例大全

在此示例中,我们将学习使用Java计算树中叶节点的数量。

示例:Java程序来计算树中叶节点的数量

class Node {
  int item;
  Node left, right;

  public Node(int key) {
  item = key;
  left = right = null;
  }
}

class Main {
  //树根
  Node root;

  Main() {
  root = null;
  }

  //计算叶节点的方法
  public static int countLeaf(Node node) {
    if(node == null) {
      return 0;
    }

    //如果节点的左、右为空
    //它是叶节点
    if (node.left == null && node.right == null) {
      return 1;
    }
    else {
      return countLeaf(node.left) + countLeaf(node.right);
    }
  }

  public static void main(String[] args) {

    //创建一个Tree对象
    Main tree = new Main();

    //创建树的节点
    tree.root = new Node(5);
    tree.root.left = new Node(3);
    tree.root.right = new Node(8);

    //创建左子节点的子节点
    tree.root.left.left = new Node(2);
    tree.root.left.right = new Node(4);

    //创建右子节点的子节点
    tree.root.right.left = new Node(7);
    tree.root.right.right = new Node(9);

    //调用方法以计算叶节点
    int leafNodes = countLeaf(tree.root);
    System.out.println("叶节点总数 = " + leafNodes);
  }
}

输出结果

叶节点总数 = 4
具有7个节点和4个叶节点的Treee数据结构
计算叶节点数

在上面的示例中,我们已经用Java实现了树数据结构。在这里,我们使用递归来计算树中叶节点的数量。

推荐

Java 实例大全