树层间遍历


class TreeNode {
	int val;
	TreeNode left;
	TreeNode right;

	TreeNode() {
	}

	TreeNode(int val) {
		this.val = val;
	}

	TreeNode(int val, TreeNode left, TreeNode right) {
		this.val = val;
		this.left = left;
		this.right = right;
	}
}

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> data = new ArrayList<List<Integer>>();
        travel(data, root, 0);
        return data;
    }

    private void travel(List<List<Integer>> data, TreeNode root, int level) {
        if (root == null) {
            return;
        }
        // The first time to travel one layer, need to create a new list.
        if (level == data.size()) {
            data.add(new ArrayList<Integer>());
        }
        data.get(level).add(root.val);
        travel(data, root.left, level + 1);
        travel(data, root.right, level + 1);
    }
}
posted @ 2021-06-15 16:14  shanaprprpr  阅读(46)  评论(0)    收藏  举报