leetcode 기록 두 갈래 트리의 차원 반복

1316 단어
두 갈래 트리를 정해서 차원별로 훑어보는 노드 값을 되돌려줍니다.(즉, 왼쪽에서 오른쪽으로 모든 노드에 층층이 접근한다.)
예를 들어, 지정된 두 갈래 트리:[3,9,20,null,null,15,7] ,
    3
   / \
  9  20
    /  \
   15   7

다음 단계를 반복한 결과를 반환합니다.
[
  [3],
  [9,20],
  [15,7]
]

 
방법: 우선 각 층의 체인 테이블을queue에 넣고 훑어보고 각 층의 체인 테이블 내용을vector에 저장합니다. 마지막으로
각 층의vector를 큰vector에 저장합니다
/**  * 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> levelOrder(TreeNode* root) {         vector> all;         vector level;         queue que;         TreeNode* tree;         if (root == NULL) return all;         que.push(root);         while (!que.empty())         {             level.clear();             int size = que.size();             for (int i = 0; i < size; i++){                 tree = que.front();                 que.pop();                 level.push_back(tree->val);                 if (tree->left)                     que.push(tree->left);                 if (tree->right)                     que.push(tree->right);             }             all.push_back(level);         }         return all;     } };

좋은 웹페이지 즐겨찾기