Examine this Python code attempting to find the diameter of a Binary Tree. Is it implemented correctly?
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def diameter(root):
if root is None:
return 0
lheight = height(root.left)
rheight = height(root.right)
return max(lheight + rheight + 1, max(diameter(root.left), diameter(root.right)))
def height(node):
if node is None:
return 0
return 1 + max(height(node.left), height(node.right))