[Leet Code] 112. Path Sum
문제사항 : dfs를 돌리는 과정에서 전역변수 flag 값으로 targetSum 합계에 해당하는 값 나왔을 때 전역변수 flag = True 값으로 바꿔서 정답 판별하려고 하였는데, 계속 코드 제출만 하면 Error가 발생함. (해당 TC로 run code 눌렀을 때는 OK 뜨는데)
위 문제때문에 엄청 삽질함
문제해결 : hasPathSum() 메서드 안에 Solution.flag = False 로 전역변수 flag값 False로 초기화하는 부분 넣으니 해결됨
채점시스템이 어떻게 돌아가는지 모르겠는데, 전역변수는 초기화하지 않아서 flag에 True 값으로 저장된 것이 False로 초기화 되지 않아서 발생한 문제인 것 같음
class Solution:
flag = False
def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
Solution.flag = False
if root == None:
return False
return self.dfs(root, targetSum, 0)
def dfs(self, root, targetSum, count):
count += root.val
if count == targetSum and root.left ==None and root.right == None:
Solution.flag = True
if root.left != None:
self.dfs(root.left, targetSum, count)
if root.right != None:
self.dfs(root.right, targetSum, count)
return Solution.flag