#--*--coding:utf8--*--
from collections import deque
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Tree(object):
def __int__(self):
self.root = None
def geTree(self, arrList):
if not arrList:
return None
arrLen = len(arrList)
self.root = TreeNode(arrList[0])
treeDeque = deque([self.root])
num = 1
while num < arrLen:
node = treeDeque.popleft()
if node is not None:
print node.val,node.left,node.right
node.left = TreeNode(arrList[num]) if arrList[num] is not None else None
treeDeque.append(node.left)
num += 1
if num < arrLen:
node.right = TreeNode(arrList[num]) if arrList[num] is not None else None
treeDeque.append(node.right)
num += 1
def dfs(self):
treeDeque = deque()
treeDeque.append(self.root)
res = []
while treeDeque:
node = treeDeque.popleft()
if node is not None:
res.append(node.val)
treeDeque.append(node.left)
treeDeque.append(node.right)
return res
def preQuery(self):
res = []
def dfs(node):
if node:
res.append(node.val)
dfs(node.left)
dfs(node.right)
dfs(self.root)
return res
t = Tree()
t.geTree([0,1,None,3,4,5,6,7,8])
print t.dfs()
print t.preQuery()
版权声明:本文为zqf_CSDN原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。