簡體   English   中英

如何在深度優先搜索的遞歸實現中返回bool?

[英]How can I return a bool in a recursive implementation of depth first search?

我想編寫一個函數來檢查兩個二叉樹是否相同。

代碼如下:

bool checkSame(Node* first, Node* second) {
    // Check if nodes are the same

    // Check left nodes: checkSame(first->left, second->left)
    // Check right nodes: checkSame(first->right, second->right)

}

問題是我不知道該返回什么地方。 我發現的所有DFS實現都有一個void返回值。 有沒有一個它返回一個布爾?

另外,我正在尋找遞歸解決方案,而不是迭代解決方案。

你這樣做的方式與調用其他函數而不是遞歸的方式完全相同。
(遞歸的一個大秘密就是遞歸沒什么特別的。)

樹木是相等的,當且僅當

  • 節點是相等的,和
  • 它的子樹都是平等的

所以

return first->data == second->data 
    && checkSame(first->left, second->left)
    && checkSame(first->right, second->right);

處理作為練習留下的空箱子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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