Problem From.
https://leetcode.com/problems/same-tree/
오늘 문제는 두개의 트리가 주어졌을때 두 트리가 같은지 아닌지 보는 문제였다.
재귀로 풀면 되는 간단한 문제로
첫번째 조건은 둘의 노드가 비어있는지 보고
두번째는 둘의 노드중에 하나라도 비어있는지 보고
둘다 아니라면 재귀를 사용하여 노드의 left 와 right 를 검사하면 되었다.
모든 조건에 걸리지 않으면 false 를 반환하면 된다.
/**
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun isSameTree(p: TreeNode?, q: TreeNode?): Boolean {
if(p == null && q == null) return true
if(p == null || q == null) return false
if(p.`val` == q.`val`) {
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
}
return false
}
}