学会二叉树的层序遍历,可以一口气打完以下十题:
一、题意
二、解答过程
层序遍历需要借助一个辅助数据结构来实现------队列实现。队列先进先出,符合一层一层遍历的逻辑。
class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*> que; if(root!=NULL) { que.push(root); } vector<vector<int>> result;//result二维向量数组 while(!que.empty()) { int size=que.size(); vector<int> vec; for(int i=0;i<size;i++) { TreeNode *node=que.front(); que.pop(); vec.push_back(node->val); if(node->left) que.push(node->left); if(node->right) que.push(node->right); } result.push_back(vec); } return result; } };