951. Äquivalente Binärbäume umdrehen
Schwierigkeit:Mittel
Themen: Baum, Tiefensuche, Binärbaum
Für einen Binärbaum T können wir eine Flip-Operation wie folgt definieren: Wählen Sie einen beliebigen Knoten und tauschen Sie den linken und rechten untergeordneten Teilbaum aus.
Ein Binärbaum X ist Flip-Äquivalent zu einem Binärbaum Y genau dann, wenn wir X gleich Y nach einigen Flip-Operationen.
Angesichts der Wurzeln zweier Binärbäume root1 und root2 wirdtrue zurückgegeben, wenn die beiden Bäume äquivalent sind, andernfalls false.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Lösung:
Wir können eine rekursive Tiefensuche (DFS) verwenden. Die Idee ist, dass zwei Bäume umkehräquivalent sind, wenn ihre Wurzelwerte gleich sind und die Teilbäume entweder gleich sind (ohne Umdrehungen) oder nach dem Umdrehen der linken und rechten Kinder an einigen Knoten gleich werden.Planen:
Basisfälle:
Rekursiver Fall:
951. Äquivalente Binärbäume umdrehen
<?php // Definition for a binary tree node. class TreeNode { public $val; public $left; public $right; function __construct($val = 0, $left = null, $right = null) { $this->val = $val; $this->left = $left; $this->right = $right; } } /** * @param TreeNode $root1 * @param TreeNode $root2 * @return Boolean */ function flipEquiv($root1, $root2) { ... ... ... /** * go to ./solution.php */ } // Example usage: $root1 = new TreeNode(1, new TreeNode(2, new TreeNode(4), new TreeNode(5, new TreeNode(7), new TreeNode(8))), new TreeNode(3, new TreeNode(6), null) ); $root2 = new TreeNode(1, new TreeNode(3, null, new TreeNode(6)), new TreeNode(2, new TreeNode(4), new TreeNode(5, new TreeNode(8), new TreeNode(7))) ); var_dump(flipEquiv($root1, $root2)); // Output: bool(true) ?>
TreeNode-Klasse: Die TreeNode-Klasse stellt einen Knoten im Binärbaum dar, mit einem Konstruktor zum Initialisieren des Knotenwerts, des linken und rechten Kindes.
flipEquiv-Funktion:
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt von. Äquivalente Binärbäume umdrehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!