1. 问题概述
二叉树遍历问题是二叉树中最基本的问题之一,常见的二叉树遍历算法有前序遍历、中序遍
历和后序遍历。其中,前序遍历是指先访问根节点,然后依次访问左子树和右子树;中序遍
历是指先访问左子树,然后访问根节点,最后访问右子树;后序遍历是指先访问左子树,然
后访问右子树,最后访问根节点。下面是一个简单的二叉树结构和三种遍历方式的实现示
例:
2. 代码实现
// 二叉树结构
class Node {
constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}
// 构造二叉树
const tree = new Node(1);
tree.left = new Node(2);
tree.right = new Node(3);
tree.left.left = new Node(4);
tree.left.right = new Node(5);
tree.right.left = new Node(6);
tree.right.right = new Node(7);
// 递归前序遍历
function preOrderTraversal(root) {
if (root) {
console.log(root.val);
preOrderTraversal(root.left);
preOrderTraversal(root.right);
}
}
// 递归中序遍历
function inOrderTraversal(root) {
if (root) {
inOrderTraversal(root.left);
console.log(root.val);
inOrderTraversal(root.right);
}
}