코드의 루바성---두 정렬을 합친 체인 테이블

5243 단어

제목 설명


두 개의 단조로운 체인 테이블을 입력하고 두 개의 체인 테이블을 합성한 체인 테이블을 출력한다. 물론 우리는 합성된 체인 테이블이 단조로운 규칙을 만족시켜야 한다.
사고방식 1: 교체 방법
파이썬 구현 1:
// An highlighted block
class Solution:
    #        
    def Merge(self, pHead1, pHead2):
        # write code here
        node = ListNode(0)
        pHead =node
        
        while pHead1 and pHead2:
            if pHead1.val > pHead2.val:
                node.next = pHead2
                pHead2 = pHead2.next
            else:
                node.next = pHead1
                pHead1 = pHead1.next
            node = node.next
        if not pHead1:
            node.next = pHead2
        else:
            node.next = pHead1
        return pHead.next

사고방식2: 귀속 방법 Python 실현 2:
// An highlighted block
class Solution:
    #        
    def Merge(self, pHead1, pHead2):
        # write code here
        if not pHead1:
            return pHead2
        if not pHead2:
            return pHead1
        if pHead1.val < pHead2.val:
            pres = pHead1
            pres.next = self.Merge(pHead1.next, pHead2)
        else:
            pres = pHead2
            pres.next = self.Merge(pHead1, pHead2.next)
        return pres

부주: 귀속 알고리즘의 운행 논리는 보기에는 복잡하지만 형식적으로는 모두 간단하다.각 층마다'현재 결점에서 해야 할 임무'를 나타냈다.역귀환 알고리즘을 생각하는 절차는
  • 각 층이 해야 할 임무를 명확히 하고eg, 체인 테이블의 작은 값을 현재 결점으로 선택
  • 각 층의 임무의 완결점과 귀속 연결점을 명확히 하고,eg,pres.next에서 다음 층의 귀속을 진행한다
  • return조건을 명확히,eg,p1,p2 중 하나가 비어 있을 때 귀속 임무 종료
  • 거의 모든 귀속 알고리즘은 이 세 가지 요구에 따라 사고 구조를 생각할 수 있기 때문에 자연스럽게 귀속 알고리즘을 쓰는 것을 두려워하지 않는다. 세 가지 문제를 스스로 머릿속에서 대답할 수 있고 조금만 수식하면 완전한 귀속 알고리즘이다.텍스트:https://blog.csdn.net/m0_37422289/article/details/79500005
    귀환과 순환의 차이: 밤을 들어라. 네가 손에 들고 있는 열쇠로 문을 열면 앞에 문이 하나 더 있는 것을 발견할 수 있다. 이어서 네가 열쇠로 이 문을 열면 또 한 짝의 문을 볼 수 있다. 그러나 네가 어떤 문을 열면 앞에 벽이 있어 갈 길이 없다. 네가 원래의 길로 돌아가는 것을 선택한다. 이것이 바로 귀환이다.
    하지만 문을 열면 앞에도 한 짝이 있는 것을 발견하고, 이어서 다음 문을 열면... 하지만 끝까지 닿지 않는다. 이것이 바로 순환이다.

    좋은 웹페이지 즐겨찾기