怎么用c语言求二叉树总结点,【数据结构】:求二叉树的的总结点个数

上文(https://blog.csdn.net/qq_44292334/article/details/115145148)我们学习二叉树的建立,以及如何求二叉树的叶子结点个数

本篇文章我们学习如何求二叉树 :总的结点个数

b319e909965d62035f61bde5bc051342.png

class TreeNode {

int val;

TreeNode leftChild;

TreeNode rightChild;

public TreeNode(int val) {

this.val=val;

}

}

public class BuildTree {

public static TreeNode buildTree() {

//构建二叉树,返回根节点的引用

// 先构造结点,

TreeNode a = new TreeNode('4');

TreeNode b = new TreeNode('2');

TreeNode c = new TreeNode('6');

TreeNode d = new TreeNode('1');

TreeNode e = new TreeNode('3');

TreeNode f = new TreeNode('5');

a.leftChild = b;

a.rightChild = c;

b.leftChild = d;

b.rightChild = e;

c.leftChild = f;

c.rightChild = null;

d.leftChild = null;

d.rightChild = null;

e.leftChild = null;

e.rightChild = null;

f.leftChild = null;

f.rightChild = null;

return a;

}

private static int n;//记录结点个数

private static int sumNodeSize(TreeNode root){

//求所有结点的个数

n=0;

preOder(root);//从根结点出发

return n;

}

private static void preOder(TreeNode root) {

if(root!=null){

n++;

//递归调用,遍历结点的左右子树

preOder(root.leftChild);

preOder(root.rightChild);

}

}

public static void main(String[] args) {

TreeNode root=buildTree();

System.out.println("此二叉树的所有节点的个数:"+sumNodeSize(root));

}

}

e480f0659b8ecf2b46dfb58c08aca13c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值