首页 > 解决方案 > 即使使用 insertNode (BST) 更新节点后,结果也是 NoneType

问题描述

结果初始化为无。结果用 insertNode 更新。由于 Result 为 None,insertNode 应该使用参数 Node 更新了 Result。

但是即使在 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)

我得到了“NoneTypeprint(type(result)) ”类mergeUtil(...)

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

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

标签: pythonpython-3.xbinary-search-treenonetype

解决方案


推荐阅读