python列表表示二叉树_python-产生二叉树的所有从根到叶的分支

本文介绍如何使用Python列表表示二叉树并实现从根到叶节点的遍历。通过示例代码展示了二叉树节点类和遍历方法,但遇到了在遍历过程中出现的错误,导致无法正确生成从根到叶的路径。作者希望寻求帮助解决这个问题。
摘要由CSDN通过智能技术生成

抱歉,这是一个常见问题,但是我没有针对我的特定问题找到合适的答案.我正在尝试实现一种walk方法,该方法将二叉树从其根节点移动到其每个叶节点,并在到达叶节点时产生从根到叶的路径.例如,遍历由以下表示的二叉树:

__a__

/ \

b d

/ \ / \

- c - -

将产生:

['a','b','c']

['a','d']

我的想法是BinaryTree.walk在根节点上调用Node.traverse,而后者又递归地调用每个子节点的traverse方法. BinaryTree.walk还创建一个空列表,该列表随每个遍历调用一起传递,附加每个节点的数据,一旦到达叶节点就产生该列表,并在访问每个节点后将每个元素从列表中弹出.

在某些时候,尽管出了点问题.这是我的代码:

class Node:

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

self.data = data

self.left = left

self.right = right

def __repr__(self):

return f"{self.__class__.__name__}({self.data})"

@property

def children(self):

return self.left,self.right

def traverse(self,branch):

print('ON NODE:',self)

branch.append(self.da

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值