LeetCode 102——二叉树的层次遍历

mac2024-01-26  30

一、题目介绍

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如: 给定二叉树: [3,9,20,null,null,15,7],

    3    / \   9  20     /  \    15   7 返回其层次遍历结果:

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

层次遍历即为BFS即广度优先遍历,可以采用队列来实现,利用队列的先进先出原则。

三、解题代码

class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> vec; if(root == NULL) return vec; queue<TreeNode*> que; que.push(root); while(!que.empty()) { vector<int> vTmp; TreeNode* pTemp = NULL; int n = que.size(); for(int i = 0; i < n; ++i) //将当前层的每个节点放入队列 { pTemp = que.front(); que.pop(); vTmp.push_back(pTemp->val); if(pTemp->left) que.push(pTemp->left); if(pTemp->right) que.push(pTemp->right); } vec.push_back(vTmp); } return vec; } };

四、解题结果

最新回复(0)