您的位置:首页 > 编程语言 > Python开发

python如何列出一个tree下面所有的东西

2015-03-31 16:05 246 查看
如图这样的tree 如果我想让他return出一个这样的list:[‘6-5-4-3’, ‘6-5-4-0’, '6-5-1', '6-2-1']应该怎么用recursion


# -*- coding: utf-8 -*-
import copy

class Node:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right

a1 = Node(6)
b1 = Node(5)
b2 = Node(2)
c1 = Node(4)
c2 = Node(1)
c3 = Node(1)
d1 = Node(3)
d2 = Node(0)

a1.left = b1
a1.right = b2
b1.left = c1
b1.right = c2
b2.left = c3
c1.left = d1
c1.right = d2

s = []

def gos(node, path=[]):
if node:
path.append(node.value)
if node.left:
path1 = copy.copy(path)
gos(node.left, path1)
if node.right:
path2 = copy.copy(path)
gos(node.right, path2)
else:
s.append(copy.copy(path))

gos(a1)
print s
#[[6, 5, 4, 3], [6, 5, 4, 0], [6, 5, 1], [6, 2, 1]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐