본문 바로가기

분류 전체보기163

[LeetCode] 110. Balanced Binary Tree class Solution { public boolean isBalanced(TreeNode root) { if (root == null) { return true; } if (isBalancedHelper(root) == -1) { return false; } return true; } public int isBalancedHelper(TreeNode root) { if (root == null) { //해당 노드가 null 이라면 0을 반환 return 0; } int leftDepth = isBalancedHelper(root.left); //왼쪽 줄기의 깊이를 계산 int rightDepth = isBalancedHelper(root.right); // 오른쪽 줄기의 깊이를 계산 if (leftD.. 2023. 12. 5.
[LeetCode] 104. Maximum Depth of Binary Tree class Solution { public int maxDepth(TreeNode root) { if (root == null) { //해당 노드가 null 이라면 0을 반환 return 0; } int leftDepth = maxDepth(root.left); //왼쪽 줄기의 깊이를 계산 int rightDepth = maxDepth(root.right); // 오른쪽 줄기의 깊이를 계산 return Math.max(leftDepth, rightDepth) + 1; // 왼쪽과 오른쪽 중 더 큰쪽에 1을 더하여 반환 } } 우선 왼쪽부터 시작하여 가장 깊은 곳에 위치한 node까지 찾아간다. 거기서부터 차례대로 올라가며 깊이 값에 1을 더해간다. 1번 루트노드에서 시작하여 maxDepth(root.le.. 2023. 12. 5.
[LeetCode] 101. Symmetric Tree class Solution { public boolean isSymmetric(TreeNode root) { if (root == null) { return true; //최상위 노드가 null 이라면 true 반환 } return isSymmetricHelper(root.left, root.right); //추가 메서드 생성하여 좌측 우측 노드 전달 } public boolean isSymmetricHelper(TreeNode p, TreeNode q) { if (p == null || q == null) { return p == q; // 두 노드중 하나가 null 이라면 두 노드를 비교한 값을 반환 } if (p.val != q.val) { return false; // 두 노드의 값이 다르다면 f.. 2023. 12. 5.
[LeetCode] 100. Same Tree /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return.. 2023. 12. 4.
728x90