[英]How do you make function that return all the nodes at given level in binary tree in C
在 C 程序中返回二叉树中给定级别的节点。 我想出了如何打印给定级别的所有节点,但我不知道如何返回所有节点。
这是我的代码。 我想更改为int NodesAtLevel(BTnode_t* root, int level)
,然后返回给定级别的所有节点。
void NodesAtLevel(BTnode_t* root, int level) {
if (root == NULL) {
return;
}
if (level == 0) {
printf(" %d ", root->value);
return;
}
NodesAtLevel(root->left, level - 1);
NodesAtLevel(root->right, level - 1);
}
提示是“编写一个算法,得到一个二叉树的数字 k 并返回 k 级的所有值。”
创建两个变量,并将它们放在一个结构中,并将其用作返回结构的容器。
struct container
{
int a, b;
};
然后修改函数的签名。
struct container NodesAtLevel (BTnode_t* root, int level)
然后在函数外部创建一个指向动态结构数组的指针,将指针传递给NodesAtLevel
(您必须将其添加到函数参数列表中),并在每个新函数调用malloc
一个新的并将其保存到指针中。 然后将要返回的值分配到malloc
d 结构中。 然后归还。 全部完成后,将它们全部释放。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.