|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class TreeNode():
- def __init__(self,val,left = None,right = None):
- self.val = val
- self.left = left
- self.right = right
- F = TreeNode('F')
- G = TreeNode('G')
- C = TreeNode('C')
- D = TreeNode('D',F,G)
- E = TreeNode('E')
- A = TreeNode('A',C,D)
- B = TreeNode('B',right=E)
- Root = TreeNode('Root',A,B)
- def preoderTraversal(node):
- if node == None:
- return None
-
- if node.left != None:
- preoderTraversal(node.left)
- if node.right != None:
- preoderTraversal(node.right)
- print (node.val)
- a = preoderTraversal(Root)
复制代码
运行结果时对的,但是我不明白第一次函数打印到数,print在函数的最后一行,然后是怎么重复执行的,求大佬们指点
综合看了下,发现你的主要问题是:在打印完树的末梢节点之后是如何去到另一个末梢的
其实吧,用一个流行词就能解释:套娃
但是呢,并不是一个套一个的基础款,而是有一个套俩的可能存在。
在套娃的同一层有复数个存在的话,是一个一个去开的,如果开了一个,里面还有,就进入下一层,否则就继续开同一层的,当没有剩下可开的套娃时,就回到上一层,继续开上一层的其他套娃。
|
|