JS实现二叉树中序遍历和层序遍历

24 阅读1分钟
//中序遍历
let inorderTraversal = function(root){
    let arr = []
    let inorder = (root)=>{
        if(!root){
            return
        }
        inorder(root.left)
        arr.push(root.val)
        inorder(root.right)
    }
    inorder(root)
    return arr
}
//层序遍历
let levelOrder = function(root){
    const ret = []
    if(!root){
        return ret
    }
    let queue = [root]
    while(queue.length){
        let tmp = [] 
        let size = queue.length
        for(let i =0;i<size;i++){
            let node = queue.shift()
            if(node.left){
                queue.push(node.left)
            }
            if(node.right){
                queue.push(node.right)
            }
            tmp.push(node.val)
        }
        ret.push(tmp)
    }
    return ret
}