js 网站测速,国外房屋设计网站,企业做网站的公司有哪些,网站建设页面设计图片请实现一个函数按照之字形顺序打印二叉树#xff0c;即第一行按照从左到右的顺序打印#xff0c;第二层按照从右到左的顺序打印#xff0c;第三行再按照从左到右的顺序打印#xff0c;其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 /…请实现一个函数按照之字形顺序打印二叉树即第一行按照从左到右的顺序打印第二层按照从右到左的顺序打印第三行再按照从左到右的顺序打印其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果
[ [3], [20,9], [15,7] ]
提示
节点总数 1000
思路:
偶数行的list逆序即可
代码
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val x; } * } */
class Solution { public ListListInteger levelOrder(TreeNode root) { ListListInteger result new LinkedListListInteger(); if(rootnull) { return result; } ListInteger list new LinkedListInteger(); DequeTreeNode deque new LinkedListTreeNode(); deque.offer(root); TreeNode flag root; int k1; while(!deque.isEmpty()) { TreeNode p deque.poll(); list.add(p.val); if(p.left!null) { deque.offer(p.left); } if(p.right!null) { deque.offer(p.right); } if(flagp) { flag deque.peekLast(); if(k%20) { Collections.reverse(list); } result.add(list); list new LinkedListInteger(); k; } } return result; }
}