求二叉树的高度是很经典的方法吧。
这里给出我的不规范代码。。
int depth=0; int max=0; void preOrder(TreeNode* pRoot) { if(pRoot==NULL) { if(depth>max) max=depth; return; } depth+=1; preOrder(pRoot->left); preOrder(pRoot->right); depth-=1; }
书上的代码
public int TreeDepth1(TreeNode pRoot) { if(pRoot == null){ return 0; } int left = TreeDepth1(pRoot.getLeft()); int right = TreeDepth1(pRoot.getRight()); return Math.max(left, right) + 1; }