![](/img/trans.png)
[英]Created a program for binary tree traversal, inorder and postorder print wrong sequences
[英]Why is it wrong to write RETURN ? ( postorder traversal )
void Postorder( IntPtr head ) {
if ( head != NULL ) {
return Postorder( head -> left ); // problem
return Postorder( head -> right ); // problem
printf( "%d\n", head -> data );
} // if
}
為什么寫 RETURN 是錯誤的? 我想知道。
我想它會一直找到head->left一直到底部,如果head->left是NULL,它會go回到上面一層開始找head->right,最后是Z78E6221F6393D136DCE86681
return
的意思是“我已經完成了,所以不要再執行這個 function 中的任何代碼。所以當代碼遇到第一個return
語句時,它會從 function 返回,並且不執行對PostOrder
或printf
的第二次調用.
在我的腦海中,我懷疑只需從這兩個語句中刪除單詞return
就可以解決問題:
void Postorder( IntPtr head ) {
if ( head != NULL ) {
Postorder( head -> left );
Postorder( head -> right );
printf( "%d\n", head -> data );
} // if
}
您在printf
之前return
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.