学堂 学堂 学堂公众号手机端

在Python中,可以使用递归实现二叉树的三种遍历算法:前序遍历、中序遍历和后序遍历

lewis 1年前 (2024-03-12) 阅读数 2 #技术

在Python中,可以使用递归实现二叉树的三种遍历算法:前序遍历、中序遍历和后序遍历。

下面是一个简单的二叉树节点类的定义:

classTreeNode: def__init__(self,val=0,left=None,right=None): self.val=val self.left=left self.right=right

接下来,我们可以定义三个函数分别实现前序遍历、中序遍历和后序遍历算法:


  1. 前序遍历(Preordertraversal):首先访问根节点,然后递归遍历左子树,最后递归遍历右子树。
defpreorderTraversal(root): result=[] ifroot: result.append(root.val) result+=preorderTraversal(root.left) result+=preorderTraversal(root.right) returnresult
  • 中序遍历(Inordertraversal):先递归遍历左子树,然后访问根节点,最后递归遍历右子树。
  • definorderTraversal(root): result=[] ifroot: result+=inorderTraversal(root.left) result.append(root.val) result+=inorderTraversal(root.right) returnresult
  • 后序遍历(Postordertraversal):先递归遍历左子树,然后递归遍历右子树,最后访问根节点。
  • defpostorderTraversal(root): result=[] ifroot: result+=postorderTraversal(root.left) result+=postorderTraversal(root.right) result.append(root.val) returnresult

    接下来,我们可以创建一个二叉树,并使用上述函数进行遍历:

    #创建一个二叉树 root=TreeNode(1) root.left=TreeNode(2) root.right=TreeNode(3) root.left.left=TreeNode(4) root.left.right=TreeNode(5) #前序遍历 print(preorderTraversal(root))#Output:[1,2,4,5,3] #中序遍历 print(inorderTraversal(root))#Output:[4,2,5,1,3] #后序遍历 print(postorderTraversal(root))#Output:[4,5,2,3,1]

    以上就是用Python实现二叉树的三种遍历算法的方法。

    版权声明

    本文仅代表作者观点,不代表博信信息网立场。

    热门