簡體   English   中英

為什么寫 RETURN 是錯誤的? (后序遍歷)

[英]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 返回,並且不執行對PostOrderprintf的第二次調用.

在我的腦海中,我懷疑只需從這兩個語句中刪除單詞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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM