LeetCode 문제 풀기 - Maximum Depth of Binary Tree(이차 나무의 최대 깊이)

1619 단어 LeetCode

링크:

링크 열기 클릭

제목:


두 갈래 나무를 정해 최대 깊이를 찾아라.
두 갈래 나무의 깊이는 뿌리 노드에서 가장 먼 잎 노드까지의 가장 긴 경로의 노드 수이다.

Example:


두 갈래 나무를 정해라[3,9,20,null,null,15,7] ,
    3
   / \
  9  20
    /  \
   15   7

최대 깊이 3을 반환합니다.

확인:

  • 루트 노드가 비어 있으면 깊이가 0이고 0으로 되돌아와 돌아오는 출구입니다
  • 뿌리 노드가 비어 있지 않으면 깊이는 적어도 1이다. 그리고 우리는 그들에게 좌우 나무의 깊이를 구한다
  • 좌우 트리의 깊이를 비교하여 비교적 큰 것을 되돌려준다
  • 귀속 호출을 통해

  • 답변:

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def maxDepth(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            if root == None:
                return 0
            else:
                left = 1
                right = 1
                left = left + self.maxDepth(root.left)
                right = right + self.maxDepth(root.right)
                
                return max(left,right)
            

    간결한 버전:
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def maxDepth(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            if root == None:
                return 0
            else:
                return max(self.maxDepth(root.left),self.maxDepth(root.right)) + 1

    좋은 웹페이지 즐겨찾기