給你一個二叉樹,請你回傳其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。
示例:二叉樹:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
回傳其層次遍歷結果:
[
[3],
[9,20],
[15,7]
]
現在我的代碼輸出如下圖,問題出在哪兒????????????
輸入[3,9,20,1,2,3,15]
我的代碼輸出[[3],[20],[15]]
預期應該輸出的結果[[3],[9,20],[1,2,3,15]]
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> re;
if(root == NULL)
return re;
deque<TreeNode*> queue(1, root);
int size = 1;
while(size)
{
vector<int> hang;
TreeNode* temp = queue.front();
hang.push_back(temp->val);
if(temp->left != NULL)
queue.push_back(temp->left);
if(temp->right != NULL)
queue.push_back(temp->right);
queue.pop_front();
size--;
if(size == 0)
{
size = queue.size();
re.push_back(hang);
}
}
return re;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191277.html
標籤:C++ 語言
上一篇:泰勒公式求正弦:請問哪里錯了?
下一篇:為什么創建二叉樹要用到二級指標?
