\begin{tikzpicture}[>=latex, node distance=1cm, on grid, auto]
  \tikzstyle{node}=[fill=white, text centered]
%  \begin{scope}
    \node [node] (lmult) {$\times$};
    \path (lmult)+(-1.0,-1)  node (lx) [node] {$x$};
    \path (lmult)+(1.0,-1)  node (lplus) [node] {$+$};
    \path (lplus)+(-0.7,-1)  node (ly) [node] {$y$};
    \path (lplus)+(0.7,-1)  node (lz) [node] {$z$};
%  \end{scope}
  % Draw arrows between elements
	  \path [draw, -] (lmult.south)+(-0.2,0.0) -- node	[above] {} (lx);
	  \path [draw, -] (lmult.south)+(0.2,0.0) -- node	[above] {} (lplus);
	  \path [draw, -] (lplus.south)+(-0.2,0.0)-- node 	[above] {} (ly);
	  \path [draw, -] (lplus.south)+(0.2,0.0)-- node		[above] {} (lz);
\node [node] (center) [right of=lmult,xshift=1.5cm] {} ;
\path (center)+(0.0,-1) node (arr) [node] {$\longrightarrow$} ;
%   \begin{scope}
    \node [node] (rplus) [right of=center,xshift=1.5cm] {$+$};
    \path (rplus)+(-1.0,-1)  node (rmult1) [node] {$\times$};
    \path (rmult1)+(-0.7,-1) node (rx1) [node] {$x$};
    \path (rmult1)+(0.7,-1)  node (ry) [node] {$y$};
    \path (rplus)+(1.0,-1)   node (rmult2) [node] {$\times$};
    \path (rmult2)+(-0.7,-1) node (rx2) [node] {$x$};
    \path (rmult2)+(0.7,-1)  node (rz) [node] {$z$};
%  \end{scope}
  % Draw arrows between elements
	  \path [draw, -] (rplus.south)+(-0.2,0.0) -- node	[above] {} (rmult1);
	  \path [draw, -] (rplus.south)+(0.2,0.0) -- node	[above] {} (rmult2);
	  \path [draw, -] (rmult1.south)+(-0.2,0.0)-- node 	[above] {} (rx1);
	  \path [draw, -] (rmult1.south)+(0.2,0.0)-- node		[above] {} (ry);
	  \path [draw, -] (rmult2.south)+(-0.2,0.0)-- node 	[above] {} (rx2);
	  \path [draw, -] (rmult2.south)+(0.2,0.0)-- node		[above] {} (rz);
%\path (plus) -- (mult1) node [midway] {$\longrightarrow$};
\end{tikzpicture}
%\caption{}
%
%x*(y+z) -> (x*y)+(x*z)
%
%  *          +
% / \        / \
%x   +  ->  *   *
%    /\    /\   /\
%   y  z  x  y x  z
