Ich arbeite an einem Problem, bei dem ich eine rekursive Lösung implementiert habe, die den linken und rechten Subtree auf spiegelende Weise vergleicht. Es funktioniert tatsächlich für meine Testfälle, aber ich würde gerne wissen, ob es eine beste Praxis wie sauberere oder schnelle Möglichkeit gibt, dies zu tun. (Dies war zu Beginn kompliziert zu verstehen) < /p>
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.right = right
self.left = left #this is just the begining of the data, left and right pointer basic
class Solution:
def isSymmetric(self, root):
if root is None: #1st function if both are none
return True
return self.comparar(root.left, root.right) #dame func comparar
def comparar(self, nodoA, nodoB): #we add 2 more parameteer as nodos to go tru
if nodoA is None and nodoB is None:
return True
if nodoA is None or nodoB is None:
return False
if nodoA.val != nodoB.val:
return False
return self.comparar(nodoA.left, nodoB.right) and self.comparar(nodoA.right, nodoB.left)
if __name__ == "__main__":
root = TreeNode(10)
sol = Solution()
print(sol.isSymmetric(root))
< /code>
Wie ich bereits sagte, aber ich möchte wissen, ob es eine effizientere Möglichkeit gibt, dies zu implementieren, um dies zu implementieren? Oder wenn eine iterative Lösung schneller sein kann, sagte mir das letzte Mal, dass rekursive Lösungen für Algoriths für Daten besser sind, aber ich möchte wissen, ob dies in den meisten Fällen gleich ist. Jeder Vorschlag mit Struktur oder Klarheit, um die Performance zu verbessern, werde ich es zu schätzen wissen.
Gibt es eine effizientere Möglichkeit für einen rekursiven Ansatz, um zu überprüfen, ob ein binärer Baum in PY symmetris ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post