求非空二叉树b的宽度(具有结点数最多的那一层的结点个数)

非空二叉树b的宽度

有三种解决方案

方案一 记录每个结点的所在层数

比较麻烦,最后还得写一个循环去找出结点数最多的层

方案二 加一个队列,在循环过程中就记录当前结点数最多的层

即用两个队列来完成层次遍历,上一层遍历完的时候那个队列也为空,此时另一个队列的长度就是该层的结点数量

方案三 加间隔结点,即使用一个队列完成统计每个层的结点数

就是之前非递归求二叉树的高度的算法,在每一层的最后一个结点加上一个指针,当遍历到这个指针指向的结点时就把这个指针指向现在的队尾元素。这样就完成了标记。

求非空二叉树b的宽度(具有结点数最多的那一层的结点个数)

上一篇:RabbitMQ由浅入深入门全总结(二)


下一篇:《数据探索性分析案例实现(EDA) 》