leetcode144. 二叉树的前序遍历
leetcode94. 二叉树的中序遍历
leetcode145. 二叉树的后序遍历
思路
这里前中后序遍历,其实指的就是中间节点的遍历顺序
前序遍历:中左右
中序遍历:左中右
后序遍历:左右中
self.result.append(root.val) # 放第一行就是前序遍历,2中,3后
self.find(root.left)
self.find(root.right)
代码
前序遍历
class Solution:
def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
self.result = []
if not root:
return []
self.find(root)
return self.result
def find(self,root):
if not root:
return 0
self.result.append(root.val)
self.find(root.left)
self.find(root.right)
return 1
中序遍历
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
self.result = []
if not root:
return []
self.find(root)
return self.result
def find(self,root):
if not root:
return 0
self.find(root.left)
self.result.append(root.val)
self.find(root.right)
return 1
后序遍历
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
self.result = []
if not root:
return []
self.find(root)
return self.result
def find(self,root):
if not root:
return 0
self.find(root.left)
self.find(root.right)
self.result.append(root.val)
return 1