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.
my answer:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int maxDepth(TreeNode* root) { if(NULL==root) return 0; int depth_letf = maxDepth(root->left);//此是递归 int depth_right = maxDepth(root->right); return depth_left > depth_right ? depth_left + 1:depth_right + 1; } };
本题注意事项:
递归!!!要懂得递归。
->是指向运算符,其作用与成员运算符(.)是一样的,只不过在它左边的名字不是实例,而是指针。依然用类A。 A *p = new A; p->foo(); //调用类A的指针变量p指向的实例的成员函数foo p->number = 0; //调用类A的指针变量p指向的实例的成员变量number赋值 delete p; //释放指针 p = null; //将指针置空
A *p则使用:p->play(); 左边是结构指针。 A p 则使用:p.paly(); 左边是结构变量。 总结: 箭头(->):左边必须为指针; 点号(.):左边必须为实体。