python链表和树实验_二叉树和链表:

假设我有节点类:class Node:

def __init__(self, data, link=None):

self.data = data

self.link = link

class BTNode:

def __init__(self, item, left=None, right=None):

self.item = item

self.left = left

self.right = right

我想创建一个二叉搜索树的顺序遍历的链表。在

到目前为止,我得到的是:

^{pr2}$

测试:if __name__ == '__main__':

a1 = BTNode('A')

a2 = BTNode('B')

a3 = BTNode('C')

a4 = BTNode('D')

a5 = BTNode('G')

a6 = BTNode('E')

a7 = BTNode('F')

a1.left = a2

a1.right = a3

a2.right = a4

a4.left = a5

a3.left = a6

a3.right = a7

x = inorder(a1)

但是我得到了一个错误:

UnboundLocalError:赋值前引用了局部变量“left_head”

如果我做了一些类似的事情:def _inorder(root):

if root is None:

return None, None

else:

temp = Node(root.item)

#if root.left:

left_head, left_tail = _inorder(root.left)

left_tail.link = temp

#if root.right:

right_head, right_tail = _inorder(root.right)

temp.link = right_head

return left_head, right_tail

然后错误变成:NoneType'object没有属性'link'

因为我认为我的逻辑是正确的,所以有人能看出问题所在吗。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值