root == p 를 비교하는법?
강사님의 풀이방법을 보면
class Solution(object):
def lowestCommonAncestor(self, root, p, q):
left = self.lowestCommonAncestor(root.left, p, q)
right = self.lowestCommonAncestor(root.right, p, q)
if root == p or root == q:
return root
elif left and right:
return root
return left or right여기서 root.value == p가 아니라 어떻게 root == p로 비교할 수 있는 지 궁금합니다.
아래는 제가 푼 방식입니다.
class Node:
def __init__(self, value=0, left=None, right = None):
self.value=value
self.left= left
self.right = right
def LCA(root,p,q):
if root is None:
return None
left = LCA(root.left,p,q)
right = LCA(root.right,p,q)
if root.value == p or root.value ==q:
return root
elif left and right:
return root
return left or right
root=[3,5,1,6,2,0,8,None,None,7,4]
root = Node(value = 3)
root.left = Node(value = 5)
root.right = Node(value = 1)
root.left.left = Node(value = 6)
root.left.right = Node(value = 2)
root.right.left = Node(value = 0)
root.right.right = Node(value = 8)
root.left.right.left = Node(value = 7)
root.left.right.right = Node(value = 4)
root= LCA(root,5,6)
print(root.value)
if root.value == p or root.value ==q:
return root저는 여기서 root == p 를 하게 되면 아래 오류가 발생합니다.
AttributeError: 'NoneType' object has no attribute 'value'
답변주시면 정말 감사하겠습니다.
답변 1
0
안녕하세요 코먹하님
코먹하님께서 제대로 코드 구현을 하셨습니다.
제 코드의 경우에는 leetcode의 채점시스템상에서 잘 작동하더라구요.
리트코드에서 input 값으로 주어지는 것들이([3, 5, 1 , ..] p = 5, p =1) 이런 값들이 int형 값이 아니라, node를 지칭하는 겁니다.
그래서 아마 코먹하님의 코드
root.val == p 이게 오히려 작동하지 않을거에요
root == p 이렇게 코드를 작성해야 될겁니다. 같은 노드를 가리키나봐요.
또는 이게 좀 더 정확하겠죠.
root.val == p.val
저도 혼자 테스트케이스를 작성해서 코드를 작성할 때에는 코먹하님과 같은 형태로 코드를 작성했습니다.

학습에 참고하시길 바랄게요 :)
또 궁금하신점 있으시면 어제든 질문주세요!
노션 공유 링크
0
90
2
수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?
0
79
2
최신 강의와 비교
0
86
2
Min Cost Climbing stairs 질문
0
77
2
노션 공유 부탁드립니다!
1
88
2
for 문에 sort 함수 를 사용하면
1
90
2
노션 공유 부탁드립니다.
0
105
2
디스코드가 올바르지 않다고 뜹니다..!
0
107
1
그래프
0
98
2
노션 공유
1
123
2
시간복잡도 질문
2
125
3
11강 질문
1
78
2
노션 공유 부탁드립니다
0
84
2
linkedList - BrowserHistory 코드 질문
0
76
1
list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?
1
168
1
라이브러리 사용
1
137
2
문제 교재는 따로 없는 거 맞나요?
1
202
2
LCA 관련해서 질문이 있습니다.
1
118
2
[Unique Paths] 완전탐색 / DP (후반부)
0
108
1
dp 계단오르기최소비용질문입니다.
0
109
1
Dynamic Array 의 size 정보가 저장되는 곳
2
161
2
노션공유가 안된듯 합니다
1
165
2
[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)
1
122
1
강의자료 만들 때 사용하신 프로그램이 뭘까요?
1
204
1





