JavaScript中二叉树的遍历
- 二叉树是一种重要的数据结构,由节点组成,每个节点最多有两个子节点,通常称为左子节点和右子节点,要注意的是空树也可称为二叉树。
- 二叉树的遍历则是指按照某种特定的顺序访问树中的所有节点。这里我们将讨论三种基本的遍历方式:前序遍历(Pre-order Traversal)、中序遍历(In-order Traversal)和后序遍历(Post-order Traversal)。
定义二叉树节点
首先,在JavaScript中,我们可以通过创建一个简单的对象来定义一个二叉树的节点结构。如下:
function TreeNode(val){
this.val=val
this.left =null
this.right=null
}
前序遍历
前序遍历的顺序是:根节点、左子树、右子树,也就是‘根左右’。这里我们通过递归来实现它,如下:
function preorder(root){
if(!root){
return
}
console.log(root.val)//访问根节点
preorder(root.left)// 遍历左子树
preorder(root.right)// 遍历右子树
}
// 示例
const root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
root.right.right = new TreeNode(6);
preorder(root);
输出结果为:124536
中序遍历
中序遍历的顺序是:左子树 、 根节点 、 右子树,即‘左根右’,通过递归来实现它如下:
function inorder(root){
if(!root) return
inorder(root.left)//遍历左子树
console.log(root.val)//访问根节点
inorder(root.right)遍历右子树
}
inorder(root)
输出结果为:425136
后序遍历
后序遍历的顺序是:左子树 、 右子树 、 根节点,也就是 ‘左右根,通过递归来实现它如下:
function lastorder(root){
if(!root) return
lastorder(root.left)//遍历左子树
lastorder(root.right)//遍历右子树
console.log(root.val)//访问根节点
}
lastorder(root)
输出结果为:452631
结尾
通过上面的示例,我们可以看到JavaScript中如何定义二叉树节点、如何进行递归遍历,并提供了相应的输出实例。这些遍历算法在树形数据结构的处理中非常有用,希望对你有所帮助。 最后,感谢阅读,别忘了点赞、收藏和关注哦,三者任选其三即可。