Maximum Depth of Binary Tree

来源:互联网 发布:手机电玩城刷分币软件 编辑:程序博客网 时间:2024/05/18 01:25

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.

算法解析:既可以用深度优先搜索,也可以用广度优先搜索,前者可以节省代码,后者可以提高速度,但两个方法都不会超时。

C语言版

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     struct TreeNode *left; *     struct TreeNode *right; * }; */int maxDepth(struct TreeNode* root) {       if(root)    {        root->val = 0;        root->val = maxDepth(root->left) + 1;        int depth = maxDepth(root->right) + 1;        if(root->val < depth)            root->val = depth;        return root->val;    }    else        return 0;}

Python版(深度优先搜索)

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

Python版(更Pythonic的代码,别人写的)

class Solution:    def maxDepth(self, root):        """        :type root: TreeNode        :rtype: int        """        if not root:            return 0        return max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1
原创粉丝点击