문제
- 연결리스트의 head가 주어짐
- 뒤에서부터 n 번째를 지워라
풀이
- 뒤부터니까, recursion으로 끝까지 들어간 후에
- 세면서 나오다가, 없애야할 순서가 오면 return을 node.next로 해주기
- return 받는거 next에 연결하도록
class Solution:
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
global count
count = 0
return recursion(head, n)
def recursion(thisNode,n):
global count
if thisNode.next is None:
count += 1
if count == n:
return thisNode.next
return thisNode
nextNode = recursion(thisNode.next,n)
count += 1
if count < n:
return thisNode
elif count == n:
return thisNode.next
elif count == n+1:
thisNode.next = nextNode
return thisNode
else:
return thisNode
결과