还剩2页未读,继续阅读
文本内容:
二叉树前序、中序、后序的递归遍历算法二叉树的前序、中序、后序遍历是二叉树的基本遍历方法,分别代表遍历节点的顺序根节点-左子树-右子树前序,左子树-根节点-右子树中序,左子树-右子树-根节点后序以下是它们的递归遍历算法前序遍历Preorder TraversaldefpreorderTraversalroot:#基础情况,如果节点为空,则返回空列表if rootis None:return[]#存储遍历结果的列表result=[]#访问根节点result.append root.val#递归遍历左result.extend preorder Traver sal root.left子树#递归遍历・result.extend preorderTraversal root right右子树return result中序遍历Inorder TraversaldefinorderTraversalroot:#基础情况,如果节点为空,则返回空列表if rootis None:return#存储遍历结果的列表result=[]#递归遍㊀㊀・㊀result.xt ndinorderTr aversal root1f t历左子树#访问根节点result.append root.val#递归遍历右㊀result.xtend inorderTraver salroot.right子树return result后序遍历Postorder Traversal㊀㊀def postord rTrav rsalroot:#基础情况,如果节点为空,则返回空列表if rootis None:return[]#存储遍历结果的列表result=[]•.#递归遍历㊀㊀㊀㊀㊀㊀r suitxt ndpostordrTravrsalroot.1ft左子树#递归result.extend postorderTraversalroot.right遍历右子树#访问根节点result.append root.valreturn result以上三种算法都是使用递归的方式实现的其中,和root.left root.分别代表当前节点的左子树和右子树在每个算法中,我们首先检查当前节right点是否为空,如果为空则返回空列表然后,我们创建一个结果列表用result,于存储遍历的结果根据不同的遍历顺序,我们依次递归遍历左子树、访问根节点、递归遍历右子树,并将结果添加到列表中最后,返回列表作result result为遍历结果。
个人认证
优秀文档
获得点赞 0