即使在使用insertNode(BST)更新节点后,结果仍然为非类型

2024-09-25 00:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

结果初始化为无。 结果将使用insertNode更新。 由于结果为None,insertNode应该使用参数节点更新结果

但即使在insertNode方法调用之后,我也没有得到任何结果

正在尝试合并两个二进制搜索树

class Node:
    def __init__(self, value):
        self.left = None
        self.data = value
        self.right = None
def insert(root, node):
    if root is None:
        root = node
    else:
        #usual code to insert other nodes..... 

我正在实施的方法

def merge(root1, root2):
    if (root1 is None):
        return root2

    if (root2 is None):
        return root1

    result = None

    mergeUtil(result, root1, root2)

    return result

def mergeUtil(result, root1, root2):

    mergeUtil(result, root1.left, root2)
    mergeUtil(result, root1, root2.left)

    if(root1.data < root2.data):
        insert(result, Node(root1.data))
        print(type(result))

    else:
        insert(result, Node(root2.data))
        print(result.data)



    mergeUtil(result, root1.right, root2)
    mergeUtil(result, root1, root2.right)

我在mergeUtil(...)下为print(type(result))得到了类'NoneType'

为什么??结果应该指向节点(root1.data)或节点(root2.data),对吗

PS:我知道上面的代码实际上不会在合并BST方面实现任何效果。正在进行的工作


Tags: selfrightnonenodedataif节点def