TIL-220524

tk_jang·2022년 5월 24일
0

TIL

목록 보기
6/11

일단 오늘은 오랜만에 풀이를 보지 않고 풀었다
그래도 황태영 매니저님께서 난이도를 낮춰주신 덕분인가 풀어볼만 했던 것 같다.

1.문제

해당 이진 탐색 트리에서
타겟 값의 트리를 가져오는 것 이다.

2.풀이

class Solution:
    def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:        
        deq = deque([root])    
        while deq:
            node = deq.popleft()
            if not node:
                break
            if val < node.val:
                deq.append(node.left)
            elif val > node.val:
                deq.append(node.right)                
            else:
                return node

일단 어제 나왔던 문제와 비슷한 경로로 접근했다.
큐 자료형을 사용해서 
트리를 받아오고 끝까지 찾지 못했을 경우 None 를반환 해주고

타겟 값이 현재 해당하는 노드보다 클 경우 오른쪽 
적을경우 왼쪽으로 가게 하면서 탐색을 하고 타겟값과 
현재의 노드가 값이 같을경우 해당 트리를 반환해주는 방식으로 
문제를 풀어봤다.

처음에는 조건문 때문에 여러 에러가 있었지만 
하나하나 테스트케이스를 해결해가다보니 답이 나왔다 

0개의 댓글