温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何实现二叉树的常见遍历操作

发布时间:2021-04-07 11:37:03 来源:亿速云 阅读:185 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关Python如何实现二叉树的常见遍历操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

二叉树的定义:

class TreeNode:   def __init__(self, x):     self.val = x     self.left = None     self.right = None

二叉树的前序遍历

递归

def preorder(root,res=[]):   if not root:     return    res.append(root.val)   preorder(root.left,res)   preorder(root.right,res)   return res

迭代

def preorder(root):   res=[]   if not root:      return []   stack=[root]   while stack:     node=stack.pop()     res.append(node.val)     if node.right:       stack.append(node.right)     if node.left:       stack.append(node,left)   return res

二叉树的中序遍历

递归

def inorder(root,res=[]):   if not root:     return    inorder(root.left,res)   res.append(root.val)   inorder(root.right,res)   return res

迭代

def inorder(root):   stack=[]   node=root   res=[]   while stack or node:     while node:       stack.append(node)       node=node.left     node=stack.pop()     res.append(node.val)     node=node.right   return res

二叉树的后序遍历

递归

def laorder(root,res=[]):   if not root:     return    laorder(root.left,res)   laorder(root.right,res)   res.append(root.val)   return res

迭代

def laorder(root):   stack=[root]   res=[]   while stack:     node=stack.pop()     if node.left:       stack.append(node.left)     if node.right:       stack.append(node.right)     res.append(node.val)   return res[::-1]

二叉树的层次遍历

迭代

def levelorder(root):   queue=[root]   res=[]   while queue:     node=queue.pop(0)     if node.left:        queue.append(node.left)     if node.right:       queue.append(node.right)     res.append(node.val)   return res

关于“Python如何实现二叉树的常见遍历操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI