[leetcode 101] Symmetric Tree
101. Symmetric Tree
https://leetcode.com/problems/symmetric-tree/solution/
해결 과정
트리가 대칭
이라는 것은 왼쪽 서브트리와 오른쪽 서브트리가 대칭을 이룬다는 것이다.
- 왼쪽 서브트리의 루트와 오른쪽 서브트리의 루트 값이 동일하며
왼쪽서브트리.left
와오른쪽서브트리.right
, 그리고왼쪽서브트리.rigit
와오른쪽버스트리.left
가 대칭을 이루는지 검사했다.
코드
fun isSymmetric(root: TreeNode?): Boolean {
return isSymmetric(root?.left, root?.right)
}
private fun isSymmetric(left: TreeNode?, right: TreeNode?) : Boolean {
if(null == left && null == right) return true
if(null == left || null == right) return false
return left.`val` == right.`val` && isSymmetric(left.left, right.right) && isSymmetric(left.right, right.left)
}
배운 점
재귀(recursion)
대신에Queue
를 이용하여 문제를 풀 수도 있다. (해설)
Leave a comment