gpt4 book ai didi

c++ - 逐级遍历树找出层次

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:25 27 4
gpt4 key购买 nike

我想知道如何找出每个节点所在的级别。但我想不通。

这是部分代码,但我必须修改它。

if(root == NULL)
return;
q.enqueue(root);
while(!queue.empty()){
queue.dequeue(cur);
if( cur != NULL){
cout<<cur->data<<" ";
if(cur->left != NULL)
queue.enqueue(cur->left);
if(cur->right != NULL)
queue.enqueue(cur->right);
}
}

如何修改代码,让我知道每个节点的级别?希望大家能给我一些关于这个问题的算法。

最佳答案

您正在以正确的方向进行水平顺序遍历。如果你需要打印你在哪个级别:

if(root == NULL)  
return;
int level = 1;
q.enqueue(root);
q.enqueue(NULL);
while(!queue.empty()){
queue.dequeue(cur);
if(cur == NULL){
//going to next level
level++;
if(queue.empty()){
break;
}
queue.enqueue(NULL);
}
else {
cout << "LEVEL is: " << level;
cout<<cur->data<<" ";
if(cur->left != NULL){
queue.enqueue(cur->left);
}
if(cur->right != NULL){
queue.enqueue(cur->right);
}
}
}

关于c++ - 逐级遍历树找出层次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com