0103. Binary Tree Zigzag Level Order Traversal
Last updated
Last updated
**Input:** root = [3,9,20,null,null,15,7]
**Output:** [[3],[20,9],[15,7]]**Input:** root = [1]
**Output:** [[1]]**Input:** root = []
**Output:** []/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
helper(res, root, 0);
return res;
}
private void helper(List<List<Integer>> res, TreeNode root, int level){
if (root == null) return;
if (res.size() <= level) res.add(new LinkedList<Integer>());
if (level % 2 == 0) {
res.get(level).add(root.val);
} else {
((LinkedList<Integer>)res.get(level)).addFirst(root.val);
}
helper(res, root.left, level+1);
helper(res, root.right, level+1);
}
}