For homework, I'm asked to show that a normal subgroup of a $p$-group intersects the centre of the $p$-group nontrivially (Herstein section 2.12 P. 15).
This question is answered here, but to prove it, I actually proved a stronger claim; that $N \cap Z(P) = Z(N)$. I'd like to know if this is right, and if so, if my proof is correct.
First, I show that if a subgroup of an arbitrary group is normal, then it's a union of conjugacy classes, i.e. $$N = \left(\bigcup_{a \in N} C(a)\right) = Z(N) \sqcup \left(\bigcup_{a \in N\setminus Z(N)} C(a)\right).$$ Choosing representatives $a_1,\dots,a_r$ for each non-central conjugacy class, the class decomposition for $N$ reads $$N = Z(N) \sqcup \left(\bigsqcup_{i=1}^r C(a_i)\right).$$ Now let $P$ be a group of order $p^n$ for some $n > 0$, and let $N \trianglelefteq P$. As $P$ is a $p$-group, its centre $Z(P)$ is nontrivial.
Further, as $N \trianglelefteq P$, we write $N = \bigcup_{a\in N} C(a)$; choosing representatives $a_1,\dots,a_r$ for each conjugacy class that is not in the centre of $N$, we have that $$N = Z(N) \sqcup \left(\bigsqcup_{i=1}^r C(a_i)\right).$$
Writing $P$ as a union of nontrivial disjoint conjugacy classes, together with $Z(P)$, we have that $$P = Z(P) \sqcup\left(\bigsqcup_{j=1}^s C(b_j)\right),$$ where $b_1,\cdots,b_s$ are representatives of distinct non-central conjugacy classes of $P$. \ind For each noncentral conjugacy class $C(a_i) \subset N$, we have that $C(a_i) \in P \setminus Z(P)$, since $P\setminus Z(P)$ is the complete collection of non-central conjugacy classes; since $Z(N) = \bigsqcup_{z \in Z(N)} C(z)$ which is the collection of central (singleton) conjugacy classes in $N$, and since $Z(P)$ is the complete collection of all central conjugacy classes of $P$, it follows that $Z(N)$ must be contained in $Z(P)$. As $Z(N)$ is non-trivial (since $N$ is a $p$-group), we have that \begin{align*} Z(P) \cap N &= Z(P) \cap \left(Z(N) \sqcup \left(\bigsqcup_{i=1}^r C(a_i)\right)\right) \\ &= Z(P) \cap Z(N) \cup \left(Z(P) \cap \left(\bigsqcup_{i=1}^r C(a_i)\right)\right) \\ &= Z(N) \cup \varnothing = Z(N). \end{align*}
Is this reasoning sound?