我在实现深度优先搜索算法的递归方法时遇到了一些问题。以下是二叉树的照片:
该方法对树的右侧(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