69_leetcode_Binary Tree Level Order Traversal
1555 ワード
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example: Given binary tree
return its level order traversal as:
1:キューの使用;2:階層の場合、キューの最後に空のポインタを追加し、現在アクセスしているポインタをキューから取り出します.
For example: Given binary tree
{3,9,20,#,#,15,7}
, 3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
1:キューの使用;2:階層の場合、キューの最後に空のポインタを追加し、現在アクセスしているポインタをキューから取り出します.
vector > levelOrder(TreeNode *root)
{
vector > result;
vector temp;
if(root == NULL)
{
return result;
}
dequemyDeque;
myDeque.push_back(root);
myDeque.push_back(NULL);
while(!myDeque.empty())
{
TreeNode* tempNode = myDeque.front();
myDeque.pop_front();
if(tempNode)
{
temp.push_back(tempNode->val);
if(tempNode->left)
{
myDeque.push_back(tempNode->left);
}
if(tempNode->right)
{
myDeque.push_back(tempNode->right);
}
}
else
{
result.push_back(temp);
temp.clear();
if(!myDeque.empty())
{
myDeque.push_back(NULL);
}
}
}
return result;
}