题目:给定二叉树例如: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[ [3],[9,20],[15,7]]
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> ans;
if (root == NULL) return ans;
queue<TreeNode*> q;
q.push(root);
//当前层节点数,下一层节点数
int curNums = 1, nextNums = 1;
while (nextNums != 0) {
vector<int> tempvec;
curNums = nextNums;
nextNums = 0;
//操作本层节点,子节点非空入队,累加下层节点数
while (curNums--) {
TreeNode *tempNode = q.front();
q.pop();
tempvec.push_back(tempNode -> val);
if (tempNode -> left != NULL) {
q.push(tempNode -> left);
++nextNums;
}
if (tempNode -> right != NULL) {
q.push(tempNode -> right);
++nextNums;
}
}
ans.push_back(tempvec);
}
return ans;
}
本文探讨了LeetCode中的102题,即如何进行二叉树的层次遍历。通过示例 `[3,9,20,null,null,15,7]`,解析了层次遍历返回的结果 `[ [3],[9,20],[15,7]]`,详细解释了分层打印二叉树的方法。"
128184584,9244034,Vue Router 实战指南,"['前端开发', 'Vue', 'JavaScript', '路由']
&spm=1001.2101.3001.5002&articleId=106080506&d=1&t=3&u=e1cbe2e1200f4b7e8b5e438cf0658702)
341

被折叠的 条评论
为什么被折叠?



