LeetCode 103 Binary Tree Zigzag Level Order Traversal
2014-03-28 15:18
471 查看
题目
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree
return its zigzag level order traversal as:
广度遍历,每层翻转
思路
1 Collections.reverse()这个函数真好!
2 广度遍历是基础的基础,要记得多练习。
代码
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree
{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its zigzag level order traversal as:
[ [3], [20,9], [15,7] ]
广度遍历,每层翻转
思路
1 Collections.reverse()这个函数真好!
2 广度遍历是基础的基础,要记得多练习。
代码
public class Solution { public ArrayList<ArrayList<Integer>> zigzagLevelOrder(TreeNode root) { ArrayList<ArrayList<Integer>> ans = new ArrayList<ArrayList<Integer>>(); if(root==null){ return ans; } ArrayList<Integer> temp = new ArrayList<Integer>(); LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); boolean reverse = false; int num = 0; int count =1; while(!queue.isEmpty()){ TreeNode cur = queue.remove(); temp.add(cur.val); count--; if(cur.left!=null){ queue.add(cur.left); num++; } if(cur.right!=null){ queue.add(cur.right); num++; } if(count==0){ count=num; num=0; if(reverse){ Collections.reverse(temp); reverse=false; } else{ reverse=true; } ans.add(new ArrayList<Integer>(temp)); temp.clear(); } } return ans; } }
相关文章推荐
- LeetCode_103 Binary Tree Zigzag Level Order Traversal
- LeetCode103 Binary Tree Zigzag Level Order Traversal
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- LeetCode103—Binary Tree Zigzag Level Order Traversal
- [Leetcode 95] 103 Binary Tree Zigzag Level Order Traversal
- LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)
- leetcode-103-Binary Tree Zigzag Level Order Traversal
- LeetCode103 Binary Tree Zigzag Level Order Traversal
- leetcode || 103、Binary Tree Zigzag Level Order Traversal
- leetcode[103]Binary Tree Zigzag Level Order Traversal
- LeetCode(103) Binary Tree Zigzag Level Order Traversal
- leetcode 103 Binary Tree Zigzag Level Order Traversal
- leetcode_c++:栈:Binary Tree Zigzag Level Order Traversal(103)
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树层次遍历 栈]
- LeetCode 103: Binary Tree Zigzag Level Order Traversal
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- Leetcode-103(Java) Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal [103]
- leetcode[103]:Binary Tree Zigzag Level Order Traversal
- LeetCode题解-103-Binary Tree Zigzag Level Order Traversal