700. Search in a Binary Search Tree

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def searchBST(self, root, val):
        """
        :type root: TreeNode
        :type val: int
        :rtype: TreeNode
        """
        if root==None : return NULL
        
        if root.val==val: return root
        
        elif root.val<val:
            self.searchBST(root.right,val)
        else:
            self.searchBST(root.left,val)

问题:不明白树的数据结构在python中是如何实现的?

    def __init__(self, root_value):
        self.root = root_value
        self.leftchild = None
        self.rightchild = None

终于看,明白了,如图:

上面的代码有问题:

class Solution(object):
    def searchBST(self, root, val):
        """
        :type root: TreeNode
        :type val: int
        :rtype: TreeNode
        """
        if not root:
            return None
        if root.val == val:
            return root
        elif root.val < val:
            return self.searchBST(root.right, val)
        else:
            return self.searchBST(root.left, val)
        
if x is None 只有None成立
if not x None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False
取上面的情况,就成立
if not x is None 相当于if not (x is None),推荐这种写法:if x is not None
原文地址:https://www.cnblogs.com/captain-dl/p/10128945.html