Maximum Depth of Binary Tree




質問する

  • 木が与えられた場合、根から最も深い
  • を求める.

    に答える


    再帰的に最後葉に到達すると、値が保存されます.
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def maxDepth(self, root: Optional[TreeNode]) -> int:
            global maxDepth
            if root:
                maxDepth = 1
                solution(root, 1)
                return maxDepth
            else:
                return 0
            
            
            
    def solution(thisNode, depth):
        global maxDepth
        if thisNode.left is None and thisNode.right is None:
            maxDepth = max(maxDepth, depth)
            return
        if thisNode.left:
            solution(thisNode.left, depth+1)
        if thisNode.right:
            solution(thisNode.right, depth+1)

    結果



    遅いけど成功…!
    stackでdfsを作るのはもっと速いですか...でも面倒くさい