검지 offer JZ 15: 반전 링크

2476 단어 검지 제공
검지 offer JZ 15: 반전 링크
문제.
링크 를 입력 하고 링크 를 반전 시 킨 후 새 링크 의 헤더 를 출력 합 니 다.
사고의 방향
매우 기본 적 인 링크 문 제 는 거의 모든 링크 를 배 우 는 프로그래머 들 이 처음에 이 알고리즘 을 배 웠 다.
큰 사 고 는 세 개의 변 수 를 이용 하여 이전, 현재 와 다음 링크 를 저장 한 다음 에 현재 next 를 이전 링크 로 가리 키 고 세 개의 변 수 를 업데이트 하 는 것 이다.
유일 하 게 주의해 야 할 것 은 while 순환 이 끝 났 을 때 (즉, curnode 가 링크 끝 에 도 착 했 을 때) 입 니 다. 이때 curnode. next 는 lastnode 를 가리 키 지 않 고 뒤에 추가 해 야 합 니 다.
코드 및 해석
class Solution:
    #   ListNode
    def ReverseList(self, pHead):
        # write code here
        if pHead == None or pHead.next == None:
            return pHead
        curnode = pHead
        lastnode = None
        nextnode = pHead.next
        while curnode.next:
            curnode.next = lastnode
            lastnode = curnode
            curnode = nextnode
            nextnode = curnode.next
        curnode.next = lastnode
        return curnode

좋은 웹페이지 즐겨찾기