본문 바로가기

전체 글41

[Java] 108. Convert Sorted Array to Binary Search Tree 문제 설명 : 1차원 int 배열을 활용해 height-balanced BST를 구현하는 문제 public TreeNode sortedArrayToBST(int[] nums) { return createTree(nums, 0, nums.length - 1); } private TreeNode createTree(int[] nums, int left, int right) { if (left > right) { return null; } int mid = (right + left) / 2; TreeNode root = new TreeNode(nums[mid]); root.left = createTree(nums, left, mid - 1); root.right = createTree(nums, mid + 1.. 2023. 6. 13.
[Java] 104. Maximum Depth of Binary Tree 문제 설명 : Tree 구조의 Depth를 구하는 문제이다. /** * 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 int maxDepth(TreeNode root) { int count = 0; re.. 2023. 6. 13.
[Java] 101. Symmetric Tree 문제 설명 : TreeNode가 주어지고, 해당 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 isSymmetric(TreeNode .. 2023. 6. 12.
[Java] 100. Same Tree 문제 설명 : 두 TreeNode가 같은지 확인하는 문제이다. /** * 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) { i.. 2023. 6. 12.
[Java] 94. Binary Tree Inorder Traversal 문제 설명 : tree에서 inorder Traversal을 구현하는 문제이다. /** * 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 List inorderTraversal(TreeNode root).. 2023. 6. 12.
[Java] 88. Merge Sorted Array 문제 설명 : 2개의 int 배열이 주어지고, 이 두 배열을 합치면서 정렬시키는 문제이다. 정렬하는 과정에서 각 배열에 유효한 값(덮어써지면 안되는 값)을 m과 n으로 알려주고 있다. class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] larger = (nums1.length >= nums2.length)?nums1:nums2; int[] shorter = (nums1.length >= nums2.length)?nums2:nums1; int check = (nums1.length >= nums2.length)?nums1.length-m:nums2.length-n; int sLength = shorter.len.. 2023. 6. 12.