个人网站开论坛,新手学做网站难吗,微信网站建设和维护报价表,石家庄集团公司网站建设我们要对二叉树进行广度遍历#xff0c;经典的数据结构就是队列#xff0c;这也是许多算法题中要用到的基础#xff0c;下面是一些基本思想
我们首先创建一个队列#xff0c;开始遍历二叉树#xff0c;这里记录一个值len#xff0c;表示当前层有多少个元素#xff0c;当…我们要对二叉树进行广度遍历经典的数据结构就是队列这也是许多算法题中要用到的基础下面是一些基本思想
我们首先创建一个队列开始遍历二叉树这里记录一个值len表示当前层有多少个元素当然第一层也就是根root只有一个元素那么就是len1在遍历的过程当中我们将使用while循环而len是否大于0作为判断条件这样就可以知道这一层是否遍历完进入遍历时弹出rootlen--接着对root的左右节点进行判断是否为null不为null的话就offer进队列当中。
因为此时len等于0了本次的while循环结束更新len为当前队列的size继续进行遍历这样下去直到最后队列为空为止就代表着对该二叉树遍历结束
代码演示如下 while(!queue.isEmpty()){int lenqueue.size();while(len0){//对每一层进行遍历len--;//知道这一层是不是结束了TreeNode tqueue.poll();//将这一层的节点拿出来后删除代表遍历结束if(t.left!null){queue.offer(t.left);//当左节点不为空的时候放入队列末尾}if(t.right!null){queue.offer(t.right);//当右节点不为空的时候放入队列末尾}}