Is there a difference between perfect, full and complete tree? Or are these the same words to describe the same situation?
Yes, there is a difference between the three terms and the difference can be explained as:
Full Binary Tree: A Binary Tree is full if every node has 0 or 2 children. Following are examples of a full binary tree.
18 / \ 15 20 / \ 40 50 / \ 30 50
Complete Binary Tree: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.
18 / \ 15 30 / \ / \ 40 50 100 40 / \ / 8 7 9
Perfect Binary Tree: A Binary tree is Perfect Binary Tree in which all internal nodes have two children and all leaves are at same level.
18 / \ 15 30 / \ / \ 40 50 100 40
These words don't have a standard definition. A full binary tree could be one in which every node has either none or two children. A complete binary tree of height $h$ could be one in which all nodes up to level $h$ have two children. I have never heard of the adjective perfect used to describe trees.
That said, a complete binary tree of height $h$ usually means what I wrote above.