從上往下列印二叉樹 (層序遍歷)JS演算法
從上往下打印出二叉樹的每個節點,同層節點從左至右列印
//給定節點結構
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} *///傳入二叉樹頭結點
function PrintFromTopToBottom(root)
{
if ( !root ) return false;//如果頭結點為空、返回假
var result = []; //建立一個數組存放結果
var tree = []; //建立一個數組存放二叉樹
tree.push(root); //先傳入頭結點// 當tree陣列長度不為空
while( tree.length ){
var node = tree.shift(); // 將陣列第一個結點放到node中
result.push(node.val); //將node結點的值壓入result陣列中
//如果node結點左子樹不為空
if( node.left ){
tree.push(node.left); // 將node結點的左子樹結點的值壓入tree陣列中
}//如果node結點又子樹不為空
if( node.right ) {
tree.push(node.right); //將node結點的右子樹結點的值壓入tree陣列中
}
}
return result; //返回result陣列
}
描述不恰當的地方、歡迎指正。 ^_^