2020-06-16

package leetcode;

import leetcode.node.TreeNode;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ZOrder {

    public static void main(String[] args) {

    }


    static class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> ans = new ArrayList();
            if (root == null) {
                return ans;
            }
            List<TreeNode> list = new LinkedList();

            list.add(root);
            boolean left = true;
            while (!list.isEmpty()) {
                List<TreeNode> cur = new LinkedList();
                List<Integer> value = new ArrayList();
                int count = 0;
                while (!list.isEmpty()) {
                    TreeNode node = list.remove(0);

                    if (node != null && node.left != null) {
                        cur.add(node.left);
                    } else {
                        cur.add(null);
                        count++;
                    }
                    if (node != null && node.right != null) {
                        cur.add(node.right);
                    } else {
                        cur.add(null);
                        count++;
                    }

                    if (left) {
                        if (node != null) {
                            value.add(node.val);
                        } else {
                            value.add(null);
                        }

                    } else {
                        if (node != null) {
                            value.add(0, node.val);
                        } else {
                            value.add(0, null);
                        }
                    }
                }
                ans.add(value);
                if (count == cur.size()) {
                    break;
                } else {
                    list = cur;
                    left = !left;
                }
            }
            return ans;
        }
    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。