python - 即使使用 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 方面取得任何成果。工作正在进行中。
解决方案
推荐阅读
- discord.py - 如何使嵌入粗体中的几个单词和其余正常文本?另外,如何在机器人消息中添加反应按钮?
- c# - 为什么 Blazor wasm 应用程序中的 CSharpCompilation.GetDiagnostics 方法在异步方法中使用时会抛出 System.PlatformNotSupportedException?
- winapi - Win32 函数成功后如何从 PWSTR 中检索字符串?
- macos - Rosetta 下的运行时库崩溃
- c++ - 如何在 lambda 捕获列表中创建指针?
- javascript - 如何使用嵌套对象的地图准确呈现两个复选框?
- ios - iOS - 让本地通知启动 URL
- javascript - Paho MQTT 客户端在页面加载时不断断开连接
- python - 如何使用 BeautifulSoup4 从属性中未指定类或 id 的网站中抓取内容
- php - 访问令牌使用谷歌驱动器从获取视频文件访问