//计算节点个数----利用栈结构来统计节点个数
int print_num(Node* root)
{
int count = 0;
Node* cur = root;
Node** stack = (Node**)malloc(sizeof(Node*) * 10);
int top = -1;
stack[++top] = root;
while (top != -1)
{
cur = stack[top--]; //出栈(后进先出) 所以先出的是左子树
if (cur != NULL)
count++;
if (cur->right != NULL) //先判断右子树是否有节点,如果有先压栈
{
stack[++top] = cur->right;
}
if (cur->left != NULL) //再判断右子树是否有节点,如果有压栈
{
stack[++top] = cur->left; //右子树后进栈
}
}
return count;
}
面试题----二叉树中计算节点的个数
最新推荐文章于 2024-09-13 22:22:04 发布