7.15 第一次做,无法 AC
7.16 一次 AC

题目描述


原题链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/

解题思路


K 神题解:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/solution/

  • 我能说啥呢,佩服。

7.16 思路:

  • 关键就是当前的队列里面有多少值就遍历多少,下面标注的核心就是本题的核心。

    1. class Solution {
    2. public List<List<Integer>> levelOrder(TreeNode root) {
    3. List<List<Integer>> res = new ArrayList<>();
    4. Queue<TreeNode> queue = new LinkedList<>();
    5. if(root != null) queue.add(root);
    6. while(!queue.isEmpty()) {
    7. List<Integer> ans = new ArrayList<>();
    8. for(int i = queue.size(); i > 0; i--) { // 这一行代码核心
    9. TreeNode tmp = queue.poll();
    10. if(tmp.left != null) queue.add(tmp.left);
    11. if(tmp.right != null) queue.add(tmp.right);
    12. ans.add(tmp.val);
    13. }
    14. res.add(ans);
    15. }
    16. return res;
    17. }
    18. }