leetcode(15)
-
(Easy - DFS) Leetcode - 104. Maximum Depth of Binary Tree
이진 트리가 주어지면 트리의 가장 큰 깊이값을 찾는 문제입니다.자식 노드로 계속 이동하며 깊이값을 찾는 문제이기에 DFS를 사용합니다. /** * 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),..
2024.06.24 -
(Easy - DFS) Leetcode - 543. Diameter of Binary Tree
이진 트리가 주어지면 트리의 지름을 알아내는 문제입니다.트리의 지름은 한 노드에서 다른 노드로 가는 가장 긴 경로입니다.이 경로는 root노드를 지나갈 수도 있고 아닐 수도 있습니다. 만약 위의 예시와 같은 트리가 주어지면 가장 긴 경로는 노드 4에서 노드 3으로 가는 경로 혹은 노드 5에서 노드 3으로 가는 경로가 될 수 있습니다. 이는 노드 1의 왼쪽 자식의 최대 길이 + 오른쪽 자식의 최대 길이와 같은데 노드 1의 왼쪽 자식의 최대 길이는 2이고 오른쪽 자식의 최대 길이는 1로 트리의 지름은 3이 됩니다. 즉, 각 노드를 방문하며 노드의 왼쪽 자식의 최대 깊이와 오른쪽 자식의 최대 깊이를 더하면 그 노드를 root로 하는 subtree의 지름이 됩니다.이렇게 각 노드의 지름(Diameter)값을 비..
2024.06.24 -
(Easy - DFS) Leetcode - 617. Merge Two Binary Trees
이진 트리 두 개가 주어졌을 때 트리들을 하나의 트리로 합치는 문제입니다.병합 규칙 : 1) 두 트리의 노드가 모두 존재하면 두 노드의 값을 합쳐 병합된 트리의 노드의 값으로 사용 2) 두 노드 중 null이 아닌 노드를 병합된 트리의 노드로 사용 3) 둘 다 null이면 nullptr /** * 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(n..
2024.06.24