Leetcode 102. 二叉樹的層次遍歷
阿新 • • 發佈:2018-09-18
offer desc scrip -o 所有 oot root tree ++
題目鏈接
https://leetcode.com/problems/binary-tree-level-order-traversal/description/
題目描述
給定一個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。
例如:
給定二叉樹: [3,9,20,null,null,15,7],
3
/ 9 20
/ 15 7
返回其層次遍歷結果:
[
[3],
[9,20],
[15,7]
]
題解
使用隊列,層次遍歷即可。
代碼
/** * 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>> levelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<>(); if (root == null) return list; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { int size = queue.size(); ArrayList tmpList = new ArrayList<>(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); tmpList.add(node.val); if (node.left != null) queue.offer(node.left); if (node.right != null) queue.offer(node.right); } list.add(tmpList); } return list; } }
Leetcode 102. 二叉樹的層次遍歷