Created
July 5, 2020 05:05
-
-
Save asyncins/2b7202f340a62dc3a67ae0e99265b3fe to your computer and use it in GitHub Desktop.
[算法-二叉树前中后序遍历]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TreeNode: | |
def __init__(self, val): | |
self.val = val | |
self.left, self.right = None, None | |
# 二叉树前中后序遍历 | |
class Solution: | |
def __init__(self): | |
self.traverse = [] | |
# 前序遍历组合 | |
def preorder(self, root): | |
if root: | |
self.traverse.append(root.val) | |
self.preorder(root.left) | |
self.preorder(root.right) | |
return self.traverse | |
# 中序遍历组合 | |
def inorder(self, root): | |
if root: | |
self.inorder(root.left) | |
self.traverse.append(root.val) | |
self.inorder(root.right) | |
return self.traverse | |
# 后序遍历组合 | |
def postorder(self, root): | |
if root: | |
self.postorder(root.left) | |
self.postorder(root.right) | |
self.traverse.append(root.val) | |
return self.traverse | |
# 初始化构造二叉树 | |
Tree = TreeNode(2) | |
Tree.left = TreeNode(1) | |
Tree.right = TreeNode(3) | |
Tree.right.left = TreeNode(7) | |
Tree.right.right = TreeNode(9) | |
# 执行不同类型的遍历并输出 | |
solution = Solution() | |
prev = solution.preorder(Tree) # [2, 1, 3, 7, 9] | |
solution = Solution() | |
inor = solution.inorder(Tree) # [1, 2, 7, 3, 9] | |
solution = Solution() | |
post = solution.postorder(Tree) # [1, 7, 9, 3, 2] | |
print(prev, inor, post) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment