剖析递归求二叉树高
先看此二叉樹:
首先一直遞歸,遞歸到4,5,3這三個葉子結點。此時4和5對應的結點返回0,然后比較它們的大小,然后最大的+1.然后遞歸返回到2后,leftDepth就為1了,而此時3對應的rightDepth返回的為0.而1>0.則為1+1=2.然后只有一個根節點無需比較了。直接+1.得高度為3.(當只有一個孩子的時候就無需比較了,直接+1.每次leftDepth和leftDepth都有對應的值)
下面看簡短代碼:
int Depth(BiTree T) {if(NULL==T)return 0;int leftDepth=Depth(T->leftChild);int rightDepth=Depth(T->rightChild);return 1+max(leftDepth,rightDepth); }總結