LeetCode:103 二叉树的锯齿形层次遍历

我写的bug也太多了

class Solution {
    public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
        List<List<Integer>> res = new LinkedList<List<Integer>>();
        if(root==null){
            return res;
        }
        int t=1;
        List<TreeNode> que = new ArrayList<TreeNode>();
        que.add(root);
        while(que.size()!=0){
            t = t % 2;
            int size = que.size();
            List<Integer> tmp = new LinkedList<Integer>();
            if(t==1){
            for(int i=1;i<=size;i++){
                TreeNode n = que.remove(0);
                if(n.left!=null)
                    que.add(n.left);
                if(n.right!=null)
                    que.add(n.right);
                tmp.add(n.val);
            }
            t++;
            }
            else{
                t++;
                for(int i=1;i<=size;i++){
                    TreeNode n = que.remove(0);
                    if(n.left!=null)
                        que.add(n.left);
                    if(n.right!=null)
                        que.add(n.right);
                    tmp.add(0,(Integer)n.val);
                } 
            }
            res.add(tmp);
        }
        return res;
    }
}

 

posted @ 2020-10-03 09:55  dlooooo  阅读(178)  评论(0编辑  收藏  举报