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

results matching ""

    No results matching ""