早教吧 育儿知识 作业答案 考试题库 百科 知识分享

给定一棵用链表表示的二叉树,其根结点指针为t,编写求二叉树的叶子数目的算法。算法思想:可以用一个指针栈来实现,且其最大容量为maxsize,二叉树根指针为t,以二叉链表作存储结构

题目详情
给定一棵用链表表示的二叉树,其根结点指针为t,编写求二叉树的叶子数目的算法。
算法思想:可以用一个指针栈来实现,且其最大容量为maxsize,二叉树根指针为t,以二叉链表作存储结构。若一个结点的左孩子和右孩子均为空,则为叶子结点,若左或右不为空则进栈,计算栈内元素的个数即为叶子结点数。
▼优质解答
答案和解析
将二叉树遍历一边即可
static int count = 0;//记录二叉树叶子节点的个数
struct Node{
int data;
Node *rigthNode;//右孩子
Node *leftNode;//左孩子
};
int fine_Node(Node * t)//Node 表示二叉树节点
{
if(t == Null)
{
return 0;
}
else if((fine_Node(t->rigthNode)+fine_Node(t->leftNode)) != 0)
{
return 1;
}
else
{
count++;
return 1;
}
}