遍历二叉树知识点 2022-10-07 201- 1m- - 学力扣-遍历二叉树 前中后遍历 class Solution {public: void traversal(TreeNode* cur, vector<int>& vec) { if (cur == NULL) return; vec.push_back(cur->val); // 中 前中后改变该语句位置即可 traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右 } vector<int> preorderTraversal(TreeNode* root) { vector<int> result; traversal(root, result); return result; }}; 层序遍历 class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*> que; if (root != NULL) que.push(root); vector<vector<int>> result; while (!que.empty()) { int size = que.size(); vector<int> vec; // 这里一定要使用固定大小size,不要使用que.size(),因为que.size是不断变化的 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; }}; 我很可爱,请给我钱本文作者:shedding-ash本文链接:https://www.shedding-ash.top/%E9%81%8D%E5%8E%86%E4%BA%8C%E5%8F%89%E6%A0%91/版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。