• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

104. Maximum Depth of Binary Tree(二叉树深度-DFS方法)

leetcode admin 8个月前 (03-25) 392次浏览 0个评论 扫描二维码
Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its depth = 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 _dfs(self, node, max_level):
        
        #如果当前节点的左右节点都不存在,则直接返回
        if not node.left and not node.right: 
            return max_level
        #节点都存在的时候需要继续递归求解
        elif node.left and node.right:
            return max(self._dfs(node.left,max_level+1),self._dfs(node.right,max_level+1))
        #只存在左节点
        elif node.left:
            return self._dfs(node.left,max_level+1)
        #只存在右节点
        else:
            return self._dfs(node.right,max_level+1)
    def maxDepth(self, root: TreeNode) -> int:
        
        #深度优先
        if not root: 
            return 0
        max_level = self._dfs(root,1)
        return max_level
        

补上一张图解析


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明104. Maximum Depth of Binary Tree(二叉树深度-DFS 方法)
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!