1 前序遍历:
/*
* function TreeNode(x) {
* this.val = x;
* this.left = null;
* this.right = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型一维数组
*/
function preorderTraversal( root ) {
const res = []
preorder(root,res)
return res
}
function preorder(root,res){ //这里的res的值要想全局使用,就要作为参数传递
if(root === null){ //如果该节点为空,则没有返回值放回数组里
return;
}
res.push(root.val) //输出根节点的值
preorder(root.left,res) //访问左子树
preorder(root.right,res) //访问右子树
}
module.exports = {
preorderTraversal : preorderTraversal
};
运行时间 90ms
占用内存 8204KB
主要思路:根左右
2 中序遍历:
function inorderTraversal( root ) {
const res =[]
inorder(root,res)
return res
}
function inorder(root,res){
if(root === null){
return
}
inorder(root.left,res) //访问左子树
res.push(root.val) //输出根节点的值
inorder(root.right,res) //访问右子树
}
module.exports = {
inorderTraversal : inorderTraversal
};
运行时间 98ms
占用内存 9456KB
主要思路:左右根
3 后序遍历:
function postorderTraversal( root ) {
const res = []
postorder(root,res)
return res
}
function postorder(root,res){
if(root === null){
return
}
postorder(root.left,res) //访问左子树
postorder(root.right,res) //访问右子树
res.push(root.val) //输出根节点
}
module.exports = {
postorderTraversal : postorderTraversal
};
运行时间:92ms
占用内存:8000KB