https://learnprogramming.in.net/finding-the-diameter-of-a-binary-tree/