단일 연결 리스트의 헤드가 있다고 가정하고 노드의 값이 오름차순으로 정렬되어 있는지 여부를 확인해야 합니다.
따라서 입력이 [2,61,105,157]과 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
-
solve() 함수를 정의합니다. 머리가 걸릴 것입니다
-
head.next가 null이면
-
참을 반환
-
-
head.val>=head.next.val이면
-
거짓을 반환
-
-
해결 반환(head.next)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class ListNode: def __init__(self, data, next = None): self.val = data self.next = next def make_list(elements): head = ListNode(elements[0]) for element in elements[1:]: ptr = head while ptr.next: ptr = ptr.next ptr.next = ListNode(element) return head class Solution: def solve(self, head): if head.next == None: return True if head.val >= head.next.val: return False return self.solve(head.next) ob = Solution() head = make_list([2,61,105,157]) print(ob.solve(head))
입력
[2,61,105,157]
출력
True