2017-05-06 6 views
0

Ich versuche, die maximale Tiefe eines binären Baumes zu finden und den rekursiven Ansatz zu verwenden. Es sieht wie folgt aus:Maximale Tiefe des binären Baums mit der Größe eins

public int depth(TreeNode root) { 
    if(root==null) return 0; 
    int leftVal=maxDepth(root.left); 
    int rightVal=maxDepth(root.right); 
    return 1 + Math.max(leftVal,rightVal); 
} 

Nun, wenn es nur einen Knoten (die Wurzel) ist es 1. zurückkehren Aber ist nicht die Tiefe des Knotens 0 mit einer Höhe von 1, da sie die Wurzel? Oder unterscheidet sich Max Depth eines Baumes von dem einzelnen Knoten?

Antwort

1

Tiefe ist NICHT das Maß für einen Baum, sondern für einen Knoten eines Baumes.

In Ihrem Fall klingt MaxDepth eines Knotens für mich wie die Höhe dieses Knotens.

  • Die Tiefe eines Knotens ist die Anzahl der Kanten vom Stamm bis zum Knoten.
  • Die Höhe eines Knotens ist die Anzahl der Kanten vom Knoten zum tiefsten Blatt.
  • Die Höhe eines Baumes ist eine Höhe der Wurzel.

dieses Bild Betrachten:

Depth and Height

+0

So gibt es nicht so etwas wie eine maximale Tiefe? – user081608

+0

Nach meinem Verständnis ist die Tiefe eines Knotens nur von seinen übergeordneten Knoten und darüber betroffen, nicht von Knoten darunter. Also ich denke, das Konzept der maximalen Tiefe in Ihrem Beispiel ist wirklich nur die Höhe eines Knotens, die nichts mit seiner Tiefe zu tun hat (in der Grafik betrachten, Knoten mit gleicher Höhe können unterschiedliche Tiefe haben und umgekehrt) . –

Verwandte Themen