题目如下:
随机给定一棵树,求树中总共的节点个数
思路:
(1)定义一个计数器和一个队列(先进先出)
(2)先将树的根节点放入队列中,下面执行循环,当队列不为空时,循环一直执行
(3)在循环体当中,首先取出队列中的元素,再让result++,后面判断该节点是否有左子节点,如果有就让左子节点入队列;再判断该节点是否有右子节点,如果有们就让右子节点入队列;
(4)当队列不为空时,一直执行循环,树的节点都会放入到队列当中,而每一次循环都会在队列中取出一个数据并让result++;
(5)直到循环结束,result表示曾经进入到队列的数据个数,即树的节点个数。
注:
当所有节点都入队列之后,循环体当中起作用的功能其实只有取出一个队列中的数据再让result++。
代码如下:
import java.util.*;
public class Test716_09 {
TreeNode root;
public static void main(String[] args) {
Test716_09 tree = new Test716_09();
tree.insertDiGui(tree.root, 5);
tree.insertDiGui(tree.root, 6);
tree.insertDiGui(tree.root, 3);
tree.insertDiGui(tree.root, 7);
tree.insertDiGui(tree.root, 4);
tree.insertDiGui(tree.root, 9);
System.out.println("先序遍历:"