erklären:
Die Tiefe des Binärbaums: Ein Weg zum Baum wird vom Wurzelknoten zum Knoten (einschließlich Wurzel- und Blattknoten) gebildet, der nacheinander an dem Blattknoten verläuft. Die Länge des längsten Pfades ist die Tiefe des Baumes.
Breite eines binären Baums: Jede Schicht eines binären Baums hat eine bestimmte Anzahl von Knoten. Die Anzahl der Knoten in der Schicht mit der größten Anzahl von Knoten wird als Breite des binären Baums bezeichnet.
Idee: Rekursive Implementierung.
1. Jeder Knoten kann als Stammknoten angesehen werden
2. Die Tiefe des Wurzelknotens (jeder Knoten) entspricht seiner linken oder rechten Unterbaumtiefe maximal +1
A. Beginnen Sie mit dem Wurzelknoten. Wenn Sie zum Blattknoten fahren, beträgt die Tiefe 0
// Die Tiefe des binären Baums öffentliche statische Int -Tiefe (Knotenwurzel) {if (root == null) {return 0; } int dl = tiefe (root.leftchild); int dr = tiefe (root.rightChild); DL> dr zurückgeben? DL+1: DR+1; }2. Die Breite des binären Baums
Idee: Fügen Sie einen Zähler während der Layer -Sequenz hinzu, um die Anzahl der Knoten in jeder Ebene aufzuzeichnen
1. Wenn jede Schicht aus der Warteschlange heraus ist, ist die Anzahl der Knoten in der nächsten Schicht tatsächlich die Größe () der Warteschlange.
2. Vergleichen Sie am Ende jeder Schichtquelle die maximale Breite mit der aktuellen Anzahl der Knoten und zeichnen Sie den Maximalwert auf.
public static int width (Knotenwurzel) {if (root == null) return 0; Queue <Knode> q = new LinkedList <node> (); q.poll (); if (node.leftchild! Breite: q.size ();} Rückkehr Breite;}Zusammenfassen
Im obigen dreht sich alles um die Beschreibung der Java -Sprache der Tiefe und Breite des binären Baums. Ich hoffe, es wird für alle hilfreich sein. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!