Use `positioning` can control the individual vertical position of nodes. But is there any way to control the default vertical spacing?
\begin{tikzpicture}[node distance = 1cm, auto]
\node [block] (1st) {1st};
\node [block, right of=1st] (2nd1) {2nd1};
\node [block, above=0.7cm of 2nd1] (2nd2) {2nd2};
\node [block, below of=2nd1] (2nd3) {2nd3};
\node [block, right of=2nd1] (3rd1) {3rd1};
\node [block, above of=3rd1] (3rd2) {3rd2};
\node [block, above of=3rd2] (3rd3) {3rd3};
\node [block, below of=3rd1] (3rd4) {3rd4};
\node [block, below of=3rd4] (3rd5) {3rd5};
\path [line] (1st) -- (2nd1);
\path [line] (2nd1) -- (2nd2);
\path [line] (2nd1) -- (2nd3);
\path [line] (2nd2) -- (3rd3);
\path [line] (2nd1) -- (3rd1);
\path [line] (1st) -- (2nd1);
\end{tikzpicture}
Like this. I changed the vertical position of `2nd2` but others remains. Do I have to add individual vertical spacing control of every nodes?