基本的求二叉树的深度题
1:判断特殊情况,根节点为NULL,函数返回深度为0 2:第二种特殊情况,只有根节点(不判断也可) 3:递归调用求出左子树和右子树的深度 最后返回二者大的深度+根节点深度1
C语言
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int maxDepth(struct TreeNode* root) { if(root == NULL) return 0; //if((root->left == NULL) && (root->right == NULL)) // return 1; int ldepth = maxDepth(root->left); int rdepth = maxDepth(root->right); return ldepth > rdepth ? (ldepth+1) : (rdepth+1); }Java语言
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int maxDepth(TreeNode root) { if(root == null) return 0; int ldepth = maxDepth(root.left); int rdepth = maxDepth(root.right); return ldepth > rdepth ? (ldepth+1) : (rdepth+1); } }