103.Binary Tree Zigzag Level Order Traversal
1-DFS
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/discuss/33815/
/**
* 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>> ans = new ArrayList<>();
helper(ans, root, 0);
return ans;
}
public void helper(List<List<Integer>> ans, TreeNode root, int curLevel){
if(root == null)
return;
if(ans.size() <= curLevel){
ans.add(new LinkedList<>());
}
List<Integer> curList = ans.get(curLevel);
if(curLevel % 2 == 0)
curList.add(root.val);
else
curList.add(0, root.val);
helper(ans, root.left, curLevel + 1);
helper(ans, root.right, curLevel + 1);
}
}
2-BFS