【发布时间】:2018-10-06 20:05:47
【问题描述】:
所以我正在尝试这个 leetcode 问题,我相信我有解决方案,但是我的 return 语句没有返回任何内容。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def searchBST(self, root, val):
def search(node):
print(node.val)
if node.val == val:
print('found', node.val)
return node
elif node.left != None:
search(node.left)
elif node.right != None:
search(node.right)
return search(root)
https://leetcode.com/problems/search-in-a-binary-search-tree/description/
这就是问题的链接,基本上它输入一个 BST 树并要求一个特定的节点,我必须将该节点作为根返回,以及它的子孙等。
包含引号“找到”的打印语句打印有问题的节点,但是我的返回语句没有返回任何内容以返回到编译器。如果我把它完全放在 if 和 elif 子句之外,它会返回找到的节点父...
我确信这是一个简单的解决方法,但我很困惑为什么它不起作用,并且查看此处发布的其他问题对我没有帮助,所以想知道是否有人可以解释为什么它不起作用,以便我可以修理它?我相信我之前在 if/elif 语句中使用了 return 语句,如果满足,它会返回值,并结束函数......完全丢失并且可能只是忽略了一些简单的东西。
感谢您的阅读!
【问题讨论】:
-
你在 search() 中没有返回
-
我在第一个 if 语句下有它,因为这就是我想要返回的值。如果我在所有 if/elif 子句之后包含 return 它不会返回有问题的节点,它会返回其父节点。
标签: python-3.x