二叉树的锯齿形层次遍历
生活随笔
收集整理的這篇文章主要介紹了
二叉树的锯齿形层次遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、題目描述
給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。
例如:
給定二叉樹 [3,9,20,null,null,15,7],
返回鋸齒形層次遍歷如下:
[[3],[20,9],[15,7] ]2、解題
使用二叉樹的層次遍歷即可
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> res = new ArrayList<List<Integer>>() ;if(root == null) {return res;}LinkedList<TreeNode> queue = new LinkedList<TreeNode>();queue.push(root);//true:從右往左, false:從左往右boolean flag = false;while(!queue.isEmpty()) {int levelSize = queue.size();List<Integer> list = new ArrayList<Integer>(levelSize);while(levelSize-- > 0) {TreeNode curNode = queue.poll();list.add(curNode.val);if(curNode.left != null) {queue.offer(curNode.left);}if(curNode.right != null) {queue.offer(curNode.right);}}if(flag && list.size()>1) {//需要翻轉數組Collections.reverse(list);}flag = !flag;res.add(list);}return res;} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的二叉树的锯齿形层次遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胖人喝什么茶可以减肥
- 下一篇: Dubbo 常见服务治理策略