안녕하세요 인터넷을 통해이 논리를 읽고 내게 때문에 일어나는 생각하는 오류 세그먼트 오류를주고 C++ 위레벨 순서 순회 ++
void levelorder(struct node* root)
{
struct node* temp = (struct node*)malloc(sizeof(struct node));
std::queue<node*> qq;
if(root==NULL)
{
return;
}
qq.push(root);
while(!qq.empty())
{
temp=qq.front();
qq.pop();
printf("%d",temp->data);
qq.push(temp->left);
qq.push(temp->right);
}
}
그러나의 레벨 주문 트리 탐색을 구현하는 시도
temp->left
가 존재하지 않습니다. 아니면이 구현을 위해 llQueue가 필요합니까? 아무도 이것에 대해 어떤 생각을 가지고 있습니까?
'temp'에 'malloc'을 호출하지 마십시오. 한 포인터를 다른 포인터에 할당하면 다른 포인터에 메모리를 할당 할 필요가 없습니다. 할당 된 포인터와 동일한 메모리를 가리킬 것입니다. 또한 malloc의 반환 값을 캐스팅하지 않아야합니다. – Dukeling