數組到二叉樹

把節點變成樹,用層序遍歷

function createNode(data) {
    return {
        data: data || null,
        left: null,
        right: null
    }
}
var dataArr = [1, 
             2, 3, 
        null, 5, null, 6, 
             7];

var t=toTree(dataArr);

function toTree(dataArr) {
    var cur=createNode( dataArr[0]);
    var queue=[];
    queue.push(cur);
    for (var i = 1; i < dataArr.length; i += 2) {
        var item=queue.shift();
        if(  dataArr[i] ){
            item.left=createNode( dataArr[i]);
             queue.push(item.left);
        }
        if(  dataArr[i+1] ){
             item.right=createNode( dataArr[i+1]);
              queue.push(item.right);
        }
       
    }
    return cur;
}
console.log(t)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章