描述
分别按照二叉树先序,中序和后序打印所有的节点。
示例1
输入:
{1,2,3}
返回值:
[[1,2,3],[2,1,3],[2,3,1]]
备注:
n≤106n \leq 10^6n≤106
复习了一下树的遍历,简单的递归。
发现Python3函数自调用不能放在class里,不知道是不是我的理解有问题。
树的遍历:
preOrder:根左右
inOrder:左根右
postOrder:左右根
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类 the root of binary tree
# @return int整型二维数组
#
def preOrder(root: TreeNode, result: list)->list:
if root == None:
return result
else:
result.append(root.val)
preOrder(root.left, result)
preOrder(root.right, result)
return result
def inOrder(root: TreeNode, result: list)->list:
if root == None:
return result
else:
inOrder(root.left, result)
result.append(root.val)
inOrder(root.right, result)
return result
def postOrder(root: TreeNode, result: list)->list:
if root == None:
return result
else:
postOrder(root.left, result)
postOrder(root.right, result)
result.append(root.val)
return result
class Solution:
def threeOrders(self , root):
result = []
result.append(preOrder(root, []))
result.append(inOrder(root, []))
result.append(postOrder(root, []))
return result
# write code here