코딩테스트 준비/leetcode

102. Binary Tree Level Order Traversal

MAKGA 2021. 7. 26. 22:19
320x100

https://leetcode.com/problems/binary-tree-level-order-traversal/

 

Binary Tree Level Order Traversal - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

이진 트리가 주어졌을 때, 레벨별로 Node의 값을 이중 벡터에 담아 리턴하면 되는 문제다.

1레벨 값: ~~~~

2레벨 값: ~~~~

3레벨 값: ~~~~

4레벨 값: ~~~~

root부터 leaf node까지 내려가며 벡터에 추가하면 끝

 

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void levelOrder(TreeNode* node, int level) {
        if (node == nullptr) {
            return;
        }

        if (v.empty() || v.size() < level) {
            v.push_back(vector<int>(1, node->val));
        }
        else {
            v[level -1].push_back(node->val);
        }

        if (node->left) {
            levelOrder(node->left, level + 1);
        }
        if (node->right) {
            levelOrder(node->right, level + 1);
        }
    }
    vector<vector<int>> levelOrder(TreeNode* root) {
        levelOrder(root, 1);
        return v;
    }
private:
    vector<vector<int>> v;
};

320x100

'코딩테스트 준비 > leetcode' 카테고리의 다른 글

257. Binary Tree Paths  (0) 2021.07.28
103. Binary Tree Zigzag Level Order Traversal  (0) 2021.07.28
99. Recover Binary Search Tree  (0) 2021.07.25
96. Unique Binary Search Trees  (0) 2021.07.24
95. Unique Binary Search Trees II  (0) 2021.07.23