如何在深度优先搜索的递归实现中返回bool?

时间:2017-08-25 07:02:01

标签: c++ function recursion binary-tree depth-first-search

我想编写一个函数来检查两个二叉树是否相同。

代码如下:

<?php
$r->blog_id = 1;
$r->featured_blogs = 1;
?>
<td><input type="checkbox" name="checkbox" value="<?php echo $r->blog_id;?>" class="test" <?php echo ($r->featured_blogs == 1) ? 'checked="checked"' : ''; ?> ></td>

问题是我不知道该返回什么地方。我发现的所有DFS实现都有一个void返回值。有没有一个它返回一个布尔?

另外,我正在寻找递归解决方案,而不是迭代解决方案。

1 个答案:

答案 0 :(得分:10)

您执行此操作的方式与调用其他函数而非递归的方式完全相同 (递归的一大秘密就是递归没什么特别的。)

当且仅当

时树木相等
  • 节点相等,
  • 两个子树相等

所以

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

处理作为练习留下的空案例。