其他分享
首页 > 其他分享> > 树 —— 深度优先遍历

树 —— 深度优先遍历

作者:互联网

数据结构:栈
使用递归:判断传入的节点是否为空,为空就return,根据遍历顺序丢给调用函数,再把当前的值赋给res数组

// 前序遍历
// var preOrder = function (root){
//     let res = []
//     let stack = []
//     root && stack.push(root)
//     while (stack.length>0){
//         let temp = stack.pop()
//         res.push(temp.val)
//         temp.right && stack.push(temp.right)
//         temp.left && stack.push(temp.left)
//     }
//     return res
// }

var preOrder = function (root){
    let res = []
    function traversal(root){
        if (!root){
            return
        }
        res.push(root.val)
        traversal(root.left)
        traversal(root.right)
    }
    traversal(root)
    return res
}

// 中序遍历
var inOrder = function (root){
    let res = []
    function traversal(root){
        if (!root){
            return
        }
        traversal(root.left)
        res.push(root.val)
        traversal(root.right)
    }
    traversal(root)
    return res
}


// 后序遍历
var thenOrder = function (root){
    let res = []
    function travelsal(root){
        if (!root){
            return
        }
        travelsal(root.left)
        travelsal(root.right)
        res.push(root.val)
    }
    travelsal(root)
    return res
}

标签:function,优先,遍历,return,res,traversal,深度,push,root
来源: https://blog.csdn.net/tinyint_813/article/details/117851851