No, your control flow diagram is not correct. Nodes represent basic blocks of code which means it can contain only assignment statements, no conditional statements or loops. Edges represent conditions such as if then else statements and case statements.
For this problem,
1. Start node is the first node with an incoming arrow. So, remove the solid node at the top and leave the arrow as it is.
2. Replace true in first left branch with x == 0
3. Replace false in the first right branch with x != 0 and connect it to the node containing x < y-5. Remove the solid node.
4. Replace true following node containing x < y-5 with x < y-5
5. Replace false following node containing x < y-5 with x >= y-5
6. Remove last two true on the edges
7. Make the node containing z:=y-x as last node and remove the arrow and solid node after this node.