看了以下其他语言写的广度遍历,提取思想,主要是利用队列的逻辑来解决问题,采用非递归的办法。 判断是否为空,为空则返回空数组。 首先头节点入队列,作为启动点。 若队列不为空,保存队列长度,表示一层有多少的结点,需要比哪里多少次,新建数组item用来作为最终结果的子数组。 对每一层进行遍历,每访问一个结点,那么队列里面就应该把那个节点去掉,表示访问过了就不需要用了。并且加入到item数组里面。继续访问左孩子右孩子,加入到队列中,以便下一层的遍历。 遍历完后,item是必定有值的,将其放入到最终结果数组中。 一层遍历完后,如果队列还不为空,则代表下一层还有,里面存的就是下一层我们需要遍历的结点。继...