[알고리즘] [재 귀 편] [나무] 제2 절: leetcode 105. 이전 순서 와 중간 순서 가 서열 구조 이 진 트 리 를 옮 겨 다 녔 습 니 다.

이번 퀘 스 트: leetcode 에 있 는 나무의 전형 적 인 문제 에 대한 재 귀적 해법 을 소개 합 니 다.
[알고리즘] [재 귀 편] [나무] 제1 절: leetcode 100. 같은 나무
[알고리즘] [재 귀 편] [나무] 제2 절: leetcode 105. 이전 순서 와 중간 순서 가 서열 구조 이 진 트 리 를 옮 겨 다 녔 습 니 다.
[알고리즘] [귀속 편] [나무] 제3 절: leetcode 210. 교과 과정 표 II
[알고리즘] [재 귀 편] [나무] 4 절: leetcode 236. 이 진 트 리 의 최근 공공 조상
[알고리즘] [재 귀 편] [나무] 5 절: leetcode 572. 다른 나무의 서브 트 리
[알고리즘] [재 귀 편] [나무] 제6 절: leetcode 101. 대칭 이 진 트 리
[알고리즘] [재 귀 편] [트 리] 7 절: leetcode 98. 이 진 트 리 검증
[알고리즘] [재 귀 편] [나무] 8 절: leetcode 102. 이 진 트 리 의 층 차 를 옮 겨 다 닙 니 다.
문제 의 근원
  • 105. 이전 순서 와 중간 순서 가 서열 구조 이 진 트 리
  • 105.:
                  。
    
      ,  
    
         preorder = [3,9,20,15,7]
         inorder = [9,3,15,20,7]3
       / \
      9  20
        /  \
       15   7
    

    키다리
  • Python 재 귀적 상세 해석
  • 코드
    class Solution:
    
        def buildTree(self, preorder, inorder) -> TreeNode:
            """
                   :
                1.            root
                2.           
                3.           
    
                :
                1.            x,           
                2.      , x         A, B;     ,      A1, B1
                3.         ,      
            """
            if not preorder:
                return
    
            root = TreeNode(preorder[0])
            mid = inorder.index(preorder[0])
            root.left = self.buildTree(preorder[1:mid + 1], inorder[:mid])
            root.right = self.buildTree(preorder[mid + 1:], inorder[mid + 1:])
            return root
    
    

    좋은 웹페이지 즐겨찾기