69_leetcode_Binary Tree Level Order Traversal


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  {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;
    }