ノードが3つ、ルートが1つ、子が2つしかない単純なツリーを想像してみてください。
Node R
/ \
/ \
Node A Node B
深さへの最初の呼び出しは、ノードRを引数として取ります。
呼び出し1)q
はNULL
そうではありませんdepth()
ノードR左==ノードAに対して呼び出されます
呼び出し2)q
はNULL
そうではありませんdepth()
ノードAに対して呼び出されます左==NULL
呼び出し3)q
はNULL
0を返します。
呼び出し2)h1 = 0;
ノードAを呼び出しますright = NULL
4)を呼び出すと、0q
がNULL
返されます。
電話2)h1 = 0; h2 = 0; return max(0, 0) + 1
呼び出し1)h1 = 1;
ノードR右=ノードBを呼び出します
呼び出し5)q
はNULL
そうではありませんdepth()
ノードBに対して呼び出されます左== NULL
6)を呼び出すと、0q
がNULL
返されます。
呼び出し5)h1 = 0;
ノードBを呼び出しますright = NULL
呼び出し7)q
はNULL
0を返します。
5)に電話するh1 = 0; h2 = 0; return max(0, 0) + 1;
電話1)h1 = 1; h2 = 1; return max(1, 1) + 1;
2を返します。