[LeetCode 간단한 문제] 21. - 두 갈래 나무의 차원 두루 II.

1527 단어 LeetCode간단히Easy

설명:


오늘은 21번째 문제입니다.두 갈래 나무를 정하고 노드 값을 밑에서 위로 되돌려줍니다.(즉, 잎 노드가 있는 층에서 뿌리 노드가 있는 층까지 층층이 왼쪽에서 오른쪽으로 옮겨다닌다.아래의 모든 코드는 건물주 검증을 거쳐LetCode에서 성공적으로 실행될 수 있고 코드도 다른 사람을 참고할 수 있다. 문장 마지막에 참고한 블로그 링크를 첨부할 것이다. 만약에 블로거의 관련 권익을 침해하면 저에게 연락하여 삭제해 주십시오.
(수동 비심)

본문


제목: 두 갈래 나무를 정하고 노드 값을 밑에서 위로 되돌려줍니다.(즉, 잎 노드가 있는 층에서 뿌리 노드가 있는 층까지 층층이 왼쪽에서 오른쪽으로 옮겨다닌다.
예를 들어 두 갈래 나무[3,9,20,null,null,15,7]를 정하고,
    3
   / \
  9  20
    /  \
   15   7

아래에서 위로 반복되는 계층은 다음과 같습니다.
[
  [15,7],
  [9,20],
  [3]
]

해법귀속 방법을 사용하다.마이너스 '-' 로 원소를 반대로 추가합니다. 코드는 다음과 같습니다.
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def _levelOrderBottom(self, level, result, node):
        if node:
            if level > len(result):
                result.insert(0,[])

            result[-level].append(node.val)
            self._levelOrderBottom(level+1, result, node.left)
            self._levelOrderBottom(level+1, result, node.right)
    def levelOrderBottom(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        level, result = 1, list()        
        self._levelOrderBottom(level, result, root)
        return result

엔딩


해법 1:https://blog.csdn.net/qq_17550379/article/details/80837718

좋은 웹페이지 즐겨찾기