给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
思路:把当前节点写入队列,当他被抛出的时候,把他的子节点写入队列。
<?php
class Node{
public $left = null;
public $right = null;
public $val;
public function __construct($val) {
$this->val = $val;
}
}
function levelOrderBottom($head) {
if ($head == null) {
return;
}
$arrVal = array();
array_push($arrVal, $head);
while (!empty($arrVal)) {
$node = array_shift($arrVal);
print $node->val;
if ($node->left != null) {
array_push($arrVal, $node->left);
}
if ($node->right != null) {
array_push($arrVal, $node->right);
}
}
}
$node1 = new Node(3);
$node2 = new Node(9);
$node3 = new Node(10);
$node4 = new Node(15);
$node5 = new Node(7);
$node1->left = $node2;
$node1->right = $node3;
$node3->left = $node4;
$node3->right = $node5;
levelOrderBottom($node1);