분류 전체보기164 [LeetCode] 111. Minimum Depth of Binary Tree class Solution { public int minDepth(TreeNode root) { if (root == null) { return 0; } Queue queue = new LinkedList(); queue.offer(root); int level = 1; while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode curNode = queue.poll(); if (curNode.left == null && curNode.right == null) { return level; } if (curNode.left != null) { queue.offer(curNode.left); } if.. 2023. 12. 5. [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. 이전 1 ··· 3 4 5 6 7 8 9 ··· 41 다음 728x90