标签:
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.
利用递归。
也可以使用栈和队列,即使用DFS和BFS方法。
C++:
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 int maxDepth(TreeNode *root) { 13 if(root==NULL) return 0; 14 if(root&&root->left==NULL&&root->right==NULL) return 1; 15 int i=1; 16 int j=1; 17 i=maxDepth(root->left); 18 j=maxDepth(root->right); 19 20 if(i>j) 21 return i+1; 22 else 23 return j+1; 24 } 25 };
python:
1 class Solution: 2 # @param root, a tree node 3 # @return an integer 4 def maxDepth(self, root): 5 if root is None: 6 return 0 7 else: 8 return max(self.maxDepth(root.left),self.maxDepth(root.right))+1
递归的思想很重要。
【leetcode】Maximum Depth of Binary Tree
标签:
原文地址:http://www.cnblogs.com/jawiezhu/p/4392923.html