CSES - Kaksi puuta

Saat syötteenä kaksi binääripuuta. Tehtävänäsi on selvittää ovatko binääripuut rakenteeltaan samat.

Voit olettaa, että kummassakin puussa on enintään 100 solmua.

Python

Toteuta tiedostoon twotrees.py funktio same, joka kertoo, onko puilla sama rakenne.

from collections import namedtuple

def same(node1, node2):
    # TODO

if __name__ == "__main__":
    Node = namedtuple("Node", ["left", "right"])
    tree1 = Node(None,Node(Node(None,None),Node(None,None)))
    tree2 = Node(Node(Node(None,None),Node(None,None)),None)
    tree3 = Node(None,Node(Node(None,None),Node(None,None)))
    print(same(tree1,tree2)) # False
    print(same(tree1,tree3)) # True
    print(same(tree2,tree3)) # False

Java

Toteuta tiedostoon TwoTrees.java metodi same, joka kertoo, onko puilla sama rakenne.

public class TwoTrees {
    public boolean same(Node node1, Node node2) {
        // TODO
    }

    public static void main(String[] args) {
        TwoTrees t = new TwoTrees();
        Node tree1 = new Node(null,
                              new Node(new Node(null,null),
                                       new Node(null,null)));
        Node tree2 = new Node(new Node(new Node(null,null),
                                       new Node(null,null)),
                              null);
        Node tree3 = new Node(null,
                              new Node(new Node(null,null),
                                       new Node(null,null)));
        System.out.println(t.same(tree1,tree2)); // false
        System.out.println(t.same(tree1,tree3)); // true
        System.out.println(t.same(tree2,tree3)); // false
    }
}