[牛客网-Leetcode] #树 简单 binary-tree-level-order-traversal

二叉树层次遍历 binary-tree-level-order-traversal

题目描述

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)

例如:
给定的二叉树是{3,9,20,#,#,15,7},
3↵ / ↵ 9 20↵ / ↵ 15 7
该二叉树层序遍历的结果是
[↵ [3],↵ [9,20],↵ [15,7]↵]

如果你不清楚“{1,#,2,3}“的含义的话,请继续阅读
我们用如下方法将二叉树序列化:
二叉树的序列化遵循层序遍历的原则,”#“代表该位置是一条路径的终结,下面不再存在结点。
例如:
1↵ / ↵ 2 3↵ /↵ 4↵ ↵ 5
上述的二叉树序列化的结果是:”{1,2,3,#,#,4,#,#,5}".

Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).

For example:
Given binary tree{3,9,20,#,#,15,7},

3↵   / ↵  9  20↵    /  ↵   15   7↵

return its level order traversal as:

[↵ [3],↵ [9,20],↵ [15,7]↵]↵

confused what"{1,#,2,3}"means?

Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where ‘#’ signifies a path terminator where no node exists below.

Here’s an example:

1↵ / ↵ 2 3↵ /↵ 4↵ ↵ 5↵
The above binary tree is serialized as"{1,2,3,#,#,4,#,#,5}".

示例

示例1
输入

{1,2}

输出

[[1],[2]]

示例2
输入

{1,2,3,4,#,#,5}

输出

[[1],[2,3],[4,5]]

解题思路

  • 二叉树的层次遍历,用队列解决,注意保存每一层的节点数
/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
    
    
public:
    vector<vector<int> > levelOrder(TreeNode* root) {
    
    
        vector<vector<int> > res;
        if(root == NULL) return res;
        queue<TreeNode*> myque;
        myque.push(root);
        //只要队列不空
        while(!myque.empty()) {
    
    
            vector<int> cur;  //保存当前层的所有节点值
            int size = myque.size();  //每次先保存当前层的节点数
            //当前层的所有节点全部依次出队并加入cur,然后把下一层的节点全部放进来,等待下一次大循环
            for(int i = 0; i < size; i ++) {
    
    
                TreeNode* p = myque.front();
                myque.pop();
                cur.push_back(p -> val);
                if(p -> left) myque.push(p -> left);
                if(p -> right) myque.push(p -> right);
            }
            res.push_back(cur);
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/cys975900334/article/details/106817319
今日推荐