当前位置: 首页 > 后端技术 > Java

JZ-059-Printbinarytreeinzigzagorder

时间:2023-04-01 16:25:19 Java

Printbinarytreeinzigzagorder标题描述请实现一个函数,按照zigzag顺序打印二叉树,即第一行从左到右打印,第二层从右打印从左到右,第三行从左到右打印,其他行以此类推。题目链接:以锯齿顺序打印二叉树代码importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.Queue;importjava.util.Stack;/***标题:以锯齿顺序打印二叉树*题目描述*请实现一个函数,将二叉树打印成之字形,即第一行从左到右打印,第二层从右到左打印,第三行从左到右打印,其他线路依此类推。*问题链接:*https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0?tpId=13&&tqId=11212&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking*/publicclassJz59{publicArrayList>print(TreeNodepRoot){QueuetreeNodes=newLinkedList<>();ArrayList>result=newArrayList<>();treeNodes.add(pRoot);布尔标志=真;//当flag为true时,从左到右入栈;当标志为假时,堆栈从右到左放置while(!treeNodes.isEmpty()){intcnt=treeNodes.size();ArrayListcurList=newArrayList<>();StackcurNodes=newStack<>();while(cnt-->0){TreeNodet=treeNodes.poll();如果(t==null){继续;}当前列表。添加(t.val);我f(flag){curNodes.add(t.left);curNodes.add(t.right);}else{curNodes.add(t.right);curNodes.add(t.left);}}标志=!flag;while(!curNodes.isEmpty()){treeNodes.add(curNodes.pop());}if(!curList.isEmpty()){result.add(curList);}}返回结果;}publicstaticvoidmain(String[]args){}}【每日留言】今天只要你再努力一点,未来的明星就是你!