每天劍指一點offer之JavaScript打印二叉樹

/**
 * 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
 * 藉助兩個輔助隊列,一個用來存放結點,一個用來存放結點值;
   先將根節點加入到隊列中,然後遍歷隊列中的元素,
   遍歷過程中,訪問該元素的左右節點,再將左右子節點加入到隊列中來。
 */

function PrintFromTopToBottom(root)
{
    // write code here
    var queue = [];
    var tmp = [];
    var current = root;
    queue.push(current);
    while(current = queue.shift()){
		/* shift() 方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。 */
        if(current.left){
            queue.push(current.left);
        }
        if(current.right){
            queue.push(current.right);
        }
        tmp.push(current.val);
    }
    return tmp;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章