二叉树的前序遍历js
时间: 2024-09-14 10:06:31 浏览: 44
js代码-二叉树前序遍历
二叉树的前序遍历是一种深度优先搜索算法,按照“根节点 -> 左子树 -> 右子树”的顺序访问每个节点。在JavaScript中,可以通过递归或迭代的方式来实现。
以下是使用JavaScript通过递归实现前序遍历的一个示例代码:
```javascript
function TreeNode(val) {
this.val = val;
this.left = this.right = null;
}
function preorderTraversal(root) {
let result = [];
function traversal(node) {
if (!node) return;
// 访问根节点
result.push(node.val);
// 遍历左子树
traversal(node.left);
// 遍历右子树
traversal(node.right);
}
traversal(root);
return result;
}
// 示例使用
let root = new TreeNode(1);
root.right = new TreeNode(2);
root.right.left = new TreeNode(3);
console.log(preorderTraversal(root)); // 输出前序遍历的结果:[1, 2, 3]
```
此外,还可以通过栈的迭代方式实现前序遍历,代码如下:
```javascript
function preorderTraversal(root) {
let stack = [];
let result = [];
let node = root;
while (node || stack.length) {
while (node) {
result.push(node.val); // 访问根节点
stack.push(node);
node = node.left; // 移至左子树
}
if (stack.length) {
node = stack.pop();
node = node.right; // 移至右子树
}
}
return result;
}
```
阅读全文