首页 > 编程知识 正文

二叉树的分层遍历,二叉树的层次遍历算法

时间:2023-05-05 19:44:54 阅读:15138 作者:4487

给出二叉树并返回其节点值的锯齿层序遍历。 也就是说,首先从左到右,然后从右到左遍历下一层,在层与层之间交替进行。 例如,某二叉树[3、9、20、null、null、15、7]、3/920/15返回锯齿层序的扫描如下。 [3]、[ 20,9 ]、[ 15,7 ] (代码/* * *定义* treenode left; * TreeNode right; *treenode(intx ) { val=x; } * }/class解决方案{ publiclistlistintegerzigzaglevelorder (treenode root ) listlistintegerres=new ArrayList ); if (根==空)返回RES; queuetreenodequeue=new linked list (; //队列实现层序遍历的队列.添加(根); int level=0; while (! queue.isEmpty () { ListInteger list=new ArrayList; int size=queue.size (; for(intI=0; isize; I )//将同一层中的所有节点出队,并将下一层中的节点排队({ TreeNode treeNode=queue.poll ); list.add(treenode.val ); if(treenode.left!=null ) queue.add(treenode.left; if(treenode.right!=null ) queue.add(treenode.right; }if () level ) %2==1) collections.reverse ) list; //奇数层反转RES.add(list ); }返回RES; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。