层序遍历
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param root TreeNode类 * @return int整型vector<vector<>> */ vector<vector<int> > levelOrder(TreeNode* root) { vector<vector<int>> result; queue<TreeNode*> levelNode; TreeNode* currentNode; if (root == nullptr) return result; vector<int> curLevel; levelNode.push(root); while (!levelNode.empty()) { curLevel.clear(); int n = levelNode.size(); for (int i = 0; i < n; i++) { currentNode = levelNode.front(); levelNode.pop(); curLevel.push_back(currentNode -> val); if (currentNode -> left != nullptr) levelNode.push(currentNode -> left); if (currentNode -> right != nullptr) levelNode.push(currentNode -> right); } result.push_back(curLevel); } return result; } };
posted on 2020-09-15 15:16 waterrzhang 阅读(61) 评论(0) 编辑 收藏 举报