二叉树构建:html
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None l1 = TreeNode(3) l1.left = TreeNode(2) l1.right = TreeNode(5) l1.left.left = TreeNode(7)
一、BFSnode
def breadth_travel(root): '''利用队列实现树的层次遍历''' if root == None: root queue = [] queue.append(root) while queue: node = queue.pop(0) print (node.val) if node.left != None: queue.append(node.left) if node.right != None: queue.append(node.right)
二、 DFS(前中后序)
a、前序app
#递归 #前 def preTraversal(root): if not root: return [] return [root.val] + preTraversal(root.left) + preTraversal(root.right) #迭代 def levelOrderBottom(root): """ 先序遍历 :param root: 根节点 :return: list_node -> List """ stack_node = [root] # 栈 print(stack_node) list_node = [] # 先序遍历结果存放列表 while stack_node: # 栈不为空 node = stack_node.pop() # 栈顶节点出栈 if not node: # 节点为空 continue list_node.append(node.val) # 把不为空的节点数值存到列表 stack_node.append(node.right) # 右节点先压栈 stack_node.append(node.left) # 左节点后压栈 print(list_node)
b、中post
#递归 def inorderTraversal(root): if not root: return [] return inorderTraversal(root.left) + [root.val] + inorderTraversal(root.right) #迭代 def levelOrderBottom(root): """ 中序遍历 非递归 :param root: 根节点 :return: list_node -> List """ stack_node = [] # 栈 list_node = [] # 中序遍历结果存放列表 node_p = root # 当前节点 while stack_node or node_p: # 当前节点不为空 or 栈不为空 while node_p: # 一直移动到最左端 stack_node.append(node_p) # 节点压栈 node_p = node_p.left # 指针左移 node = stack_node.pop() # 出栈 list_node.append(node.val) # 获取节点数据 node_p = node.right # 获取有节点 print(list_node)
c、后指针
#递归 def postTraversal(root): if not root: return [] return postTraversal(root.left) + postTraversal(root.right) + [root.val] #迭代 def levelOrderBottom(root): """ 后序遍历 非递归 :param root: 根节点 :return: list_node -> List """ stack_node = [root] list_node = [] while stack_node: node = stack_node.pop() if node.left: # 左孩子不为空 stack_node.append(node.left) # 左孩子压栈 if node.right: # 右孩子不为空 stack_node.append(node.right) # 右孩子压栈 list_node.append(node.val) # 获取当前指针数值 list_node.reverse() # 取反
他们此刻正躲在距离战场六七十里外的海面上,缩着身子,敛着查克拉,努力隐藏着自身的存在,像是在窥视巨象打架的蝼蚁。海面上波澜起伏,战斗的余波不时会掀起异常的浪头,隆多两人弓着腰的身影在海浪中若隐若现,隐匿成两个不起眼的小黑点。https://www.mbgtxt.com/28_28099/16881188.htmlcode