0
点赞
收藏
分享

微信扫一扫

二叉树知识

1.前中后序遍历
主要是根据父节点的位置来定的
前序:中左右
中序:左中右
后序:左右中

终止条件:root=null
以前序为例

var preorderTraversal = function(root) {
    let res=[]
    const dfs = function(root){
        if(root==null) return;
        //递归左节点
        res.push(root.val)//中
        dfs(root.left)//左
        dfs(root.right)//右
    }
    dfs(root)
    return res;
};

2.层序遍历:可以作为一个模板

var levelOrder = function(root) { //用队列解决
    let res = [], queue = []
    queue.push(root)
    if (root==null) return res

    while(queue.length!==0){
        let length=queue.length//当前的层级长度
        let curlevel=[]
        for(let i=0;i<length;i++){//
            let node=queue.shift()//  
            curlevel.push(node.val)
            //找到下一层级的节点
            node.left&&queue.push(node.left)
            node.right&&queue.push(node.right)
        }
        res.push(curlevel)
    }
    return res
};

3.二叉树和n叉树
二叉树有左右儿子,n叉树的孩子遍历

举报

相关推荐

0 条评论