Algorithm
LeetCode 623. Add One Row to Tree
쿠케캬캬
2024. 4. 20. 17:55
반응형
https://leetcode.com/problems/add-one-row-to-tree/description
BFS로 (depth - 1)번째 노드를 모두 찾아줍니다.
val 값과 찾은 노드의 좌/우측 서브트리를 가진 노드를 생성해주고, 기존 노드의 좌/우측 서브트리로 연결해줍니다.
class Solution {
public:
TreeNode* addOneRow(TreeNode* root, int val, int depth) {
if(depth == 1) {
return new TreeNode(val, root, NULL);
}
queue<TreeNode*> q;
q.push(root);
for(int i=2; i<depth; i++) {
int sz = q.size();
while(sz--) {
TreeNode* node = q.front(); q.pop();
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
}
}
while(!q.empty()) {
TreeNode* node = q.front(); q.pop();
node->left = new TreeNode(val, node->left, NULL);
node->right = new TreeNode(val, NULL, node->right);
}
return root;
}
};
반응형