LeetCode/Tree (3) 썸네일형 리스트형 [Easy] 226. Invert Binary Tree / 구글 코딩 테스트 기출 문제 이번 문제는 구글 코딩 테스트로 굉장히 유명한 문제이다. 이 문제가 유명해진 데에는 한 가지 이유가 있다. 맥(Mac)을 사용하는 개발자라면 누구나 사용해 봤을 법한 Homebrew (MacOS 패키지 관리자)를 개발한 사람으로 유명한 Max Howell은 2015년 구글과 입사 면접을 보는데, 면접 문제에서 binary tree를 invert하는 문제가 나왔지만 결국 풀지 못해 면접에서 떨어지게 된다. 그 후에 Max Howell은 자신의 트위터에 "구글: 90%의 구글 엔지니어들은 네가 개발한 소프트웨어를 사용하지만, 너는 binary tree invert하는 것도 화이트보드에 풀지 못하기 때문에 꺼져라" 와 같은 글을 올리며 자신은 굉장히 많은 사람들이 사용하는 소프트웨어를 개발했지만 고작 코딩 테.. [Easy] 104. Maximum Depth of Binary Tree Leetcode 104번 문제는 주어진 binary tree의 최대 깊이 (Maximum depth)를 구하는 문제이다. #풀이 class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } int left = 1 + maxDepth(root.left); int right = 1 + maxDepth(root.right); return Math.max(left, right); } } 이 문제는 recursion를 통해 쉽게 풀수 있다. 왼쪽 tree의 깊이를 구하고 오른쪽 트리의 깊이와 비교해 더 큰 값을 return하는 식으로 풀수 있다. 위의 코드를 간략하면 아래처럼 된다. class Solution { public.. [Easy] 100. Same Tree Leetcode 100번 문제는 이진 트리 문제이다. 2개의 이진 트리의 root가 주어진다. 두 개의 이진 트리가 똑같은지 알아내는 문제이다. 여기서 똑같다는 정의는 트리의 형태가 같고 모든 노드의 값들도 같아야 한다. #풀이 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (q == null && p == null){ return true; } if(q != null && p == null || q == null && p != null){ return false; } if(p.val != q.val){ return false; } return isSameTree(p.left, q.left) && isSameTree(p.r.. 이전 1 다음