博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ:Maximum Depth of Binary Tree(二叉树最大深度)
阅读量:7162 次
发布时间:2019-06-29

本文共 1820 字,大约阅读时间需要 6 分钟。

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.

求二叉树深度,直接看代码:

1 /** 2  * Definition for a binary tree node. 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         _max = 1;15         tranverse(root->left, 1);16         tranverse(root->right, 1);17         return _max;18     }19     void tranverse(TreeNode * node, int count)20     {21         if(node == NULL)22             return;23         else{ 24             if(count + 1 > _max)25                 _max = count + 1;26             tranverse(node->left, count + 1);27             tranverse(node->right, count + 1);28         }29     }30 public:31     int _max;32 };

 java版的如下所示,上面的递归写的还是太麻烦了,下面的简单很多哈:

1 /** 2  * Definition for a binary tree node. 3  * public class TreeNode { 4  *     int val; 5  *     TreeNode left; 6  *     TreeNode right; 7  *     TreeNode(int x) { val = x; } 8  * } 9  */10 public class Solution {11     public int maxDepth(TreeNode root) {12         if(root == null)13             return 0;14         return tranverse(root, 0);15     }16     17     public int tranverse(TreeNode root, int val){18         if(root.left == null && root.right == null)19             return val+1;20         int leftDep = 0, rightDep = 0;21         if(root.left != null)22             leftDep = tranverse(root.left, val + 1);23         if(root.right != null)24             rightDep = tranverse(root.right, val + 1);25        return Math.max(leftDep, rightDep);26     }27 }

 

转载于:https://www.cnblogs.com/-wang-cheng/p/4904924.html

你可能感兴趣的文章