【发布时间】:2015-07-02 18:56:35
【问题描述】:
深度优先搜索算法实现的递归方法有一些问题。这是二叉树的照片:
该方法适用于树的右侧 (55, 89, 144),但当涉及到左侧时它返回 nil,即使它输入“yes”。那么,代码有什么问题?该节点是 Node 类的一个实例,它具有值(整数)并链接到左右子节点(Node 类的其他实例),如果它没有来自该侧的子节点,则为 nil。
方法代码如下:
def depth_first_search(node, target)
if node.value == target
puts "yes"
return node
end
depth_first_search(node.child_left, target) if node.child_left
depth_first_search(node.child_right, target) if node.child_right
end
【问题讨论】:
标签: ruby-on-rails ruby recursion depth-first-search