CSES - Lehdet

Tehtäväsi on laskea, montako lehteä on annetussa binääripuussa. Voit olettaa, että puussa on enintään 100 solmua.

Tehtäväpohjassa on esimerkkinä seuraava puu, jossa on kaksi lehteä:

Python

Toteuta tiedostoon leaves.py funktio count, joka palauttaa lehtien määrän.

from collections import namedtuple

def count(node):
    # TODO

if __name__ == "__main__":
    Node = namedtuple("Node",["left","right"])
    tree = Node(None,Node(Node(None,None),Node(None,None)))
    print(count(tree)) # 2

Löydät neuvoja binääripuun käsittelyyn Pythonilla kurssin materiaalista.

Java

Toteuta tiedostoon Leaves.java metodi count, joka palauttaa lehtien määrän.

public class Leaves {
    public int count(Node node) {
        // TODO
    }

    public static void main(String[] args) {
        Leaves l = new Leaves();
        Node tree = new Node(null,
                             new Node(new Node(null,null),
                                      new Node(null,null)));
        System.out.println(l.count(tree)); // 2
    }
}

Löydät neuvoja binääripuun käsittelyyn Javalla kurssin materiaalista.

Huomaa, että CSES liittää tiedoston Node.java automaattisesti palautukseen, eli omassa koodissasi ei tule olla luokan Node määrittelyä.