バイナリツリートラバーサルプリアンブル:
#バイナリツリーの深さを求めます クラスソリューション: デフTreeDepth(自己、PROOT): PROOT ==なしの場合: 0を返します 結果= 0 カウント= 0 スタック= [(PROOT、1)] (スタック)中: 根、カウント=(stack.pop) root.right場合: stack.append((root.right、カウント数+ 1)) root.left場合: stack.append((root.left、カウント数+ 1)) もしroot.right ==なしとroot.left ==なしと結果<数: 結果=数 リターン結果
だけでなく、単純な再帰は、他の誰かの下に見えたことだけを見つけるために、自分自身を書きます
クラスソリューション: デフTreeDepth(自己、PROOT): #のここでの書き込みコード であれば PROOT == なし: リターン0 左 = self.TreeDepth(pRoot.left) 右 = self.TreeDepth(pRoot.right) のリターンは + 1を残した場合 >右、左、他の右+ 1