private void zigzagTravel(TreeNode node, List<List<Integer>> result, boolean isLeft, int level){

    	if(level == result.size()){
    		result.add(new ArrayList<Integer>());
    	}
    	
    	TreeNode left  = node.left;
    	TreeNode right = node.right;
    	List<Integer> list = result.get(level);
    	
    	addToList(list, left, right, isLeft);
    	
    	if(null != left)  zigzagTravel(left, result, !isLeft, level + 1);
    	if(null != right) zigzagTravel(right, result, !isLeft, level + 1);
    }