Überprüfen Sie die Symmetrie im BinärbaumJava

Java-Forum
Anonymous
 Überprüfen Sie die Symmetrie im Binärbaum

Post by Anonymous »

Ich versuche, die Symmetrie in einem bestimmten Baum zu überprüfen. Meine Idee war, dass ich zwei Arraylisten aus dem linken Subtree mit Pre -Order -Traversal (NLR) und aus dem rechten Subtree mit Reverse -Vorbestellungstraversal (NRL) machen konnte, und dann Vergleichen Sie die beiden mit dem Gleichstellungsoperator und ich hätte einen booleschen Wert. Alle Tipps, warum dies geschieht, wird geschätzt.

Code: Select all

    import java.util.ArrayList;

class BinaryTree{
public E data;
public BinaryTree left;
public BinaryTree right;

public BinaryTree() {}
public BinaryTree(E data) { this.data = data; }
public BinaryTree(E data, BinaryTree left, BinaryTree right) {
this.data = data;
this.left = left;
this.right = right;
}
}

class Solution{
public static boolean symmetricTree(BinaryTree root){
System.out.println(traversal(root.left, true));
System.out.println(traversal(root.right, false));
return traversal(root.left, true) == traversal(root.right, false);
}

public static ArrayList traversal(BinaryTree root, boolean left){
// 関数を完成させてください
ArrayList dArr = new ArrayList();
if(left) dArr = preorderTraversalHelper(root, dArr);
else dArr = reversePreorderTraversalHelper(root, dArr);
//System.out.println(dArr);
return dArr;
}
public static ArrayList preorderTraversalHelper(BinaryTree root, ArrayList dArr){
if (root == null) return null;
dArr.add(root.data);
preorderTraversalHelper(root.left, dArr);
preorderTraversalHelper(root.right, dArr);
return dArr;
}
public static ArrayList reversePreorderTraversalHelper(BinaryTree root, ArrayList dArr){
if (root == null) return null;
dArr.add(root.data);
reversePreorderTraversalHelper(root.right, dArr);
reversePreorderTraversalHelper(root.left, dArr);
return dArr;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post