Python 中二叉树节点的定义方法
# Definition for a binary tree node.
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
前序遍历
class Solution(object):
def traversal(self,node,arr=[]):
if node==None:
return
arr.append(node.val)
self.traversal(node.left,arr)
self.traversal(node.right,arr)
def preorderTraversal(self, root):
res=[]
self.traversal(root,res)
return res
中序遍历
class Solution(object):
def traversal(self,node,arr):
if node==None:
return
self.traversal(node.left,arr)
arr.append(node.val)
self.traversal(node.right,arr)
def inorderTraversal(self, root):
res=[]
self.traversal(root,res)
return res
后序遍历
class Solution(object):
def traversal(self,node,arr):
if node==None:
return
self.traversal(node.left,arr)
self.traversal(node.right,arr)
arr.append(node.val)
def postorderTraversal(self, root):
res=[]
self.traversal(root,res)
return res
知识点
递归函数的三要素
确定递归函数的参数和返回值、确定终止条件、确定单层递归的逻辑