This is the code for the original image (you can find it by looking at the revisions of this question). I don't use chain as I don't have much experience with it.
\documentclass[tikz]{standalone}
\usepackage{amssymb}
\usetikzlibrary{shapes.multipart,positioning,arrows,calc}
\tikzset{
listnode/.style={
rectangle split,rectangle split parts=2,draw,rectangle split horizontal,fill=blue!20
},
startnode/.style={
draw,minimum width=1.5cm,minimum height=.75cm
}
}
\begin{document}
\begin{tikzpicture}[scale=.2, >=stealth]
\node[startnode] (t0) {$T[0]$};
\node[startnode,below=0pt of t0] (t1) {$T[1]$};
\node[startnode,below=0pt of t1] (t2) {$T[2]$};
\node[listnode,right=of t0] (3) {3};
\node[listnode,right=of t1] (1) {1};
\node[listnode,right=.5cm of 1] (7) {7};
\node[listnode,right=of t2] (2) {2};
\node[listnode,right=.5cm of 2] (5) {5};
\node[listnode,right=.5cm of 5] (8) {8};
\node[right=.5cm of 3] (3x) {$\varnothing$};
\node[right=.5cm of 7] (7x) {$\varnothing$};
\node[right=.5cm of 8] (8x) {$\varnothing$};
\draw[*->] let \p1 = (3.two), \p2 = (3.center) in (\x1,\y2) -- (3x);
\draw[*->] let \p1 = (1.two), \p2 = (1.center) in (\x1,\y2) -- (7);
\draw[*->] let \p1 = (7.two), \p2 = (7.center) in (\x1,\y2) -- (7x);
\draw[*->] let \p1 = (2.two), \p2 = (2.center) in (\x1,\y2) -- (5);
\draw[*->] let \p1 = (5.two), \p2 = (5.center) in (\x1,\y2) -- (8);
\draw[*->] let \p1 = (8.two), \p2 = (8.center) in (\x1,\y2) -- (8x);
\draw[->] (t0) edge (3) (t1) edge (1) (t2) edge (2);
\end{tikzpicture}
\end{document}

As for the second diagram, finding the center anchor of H.two is a bit tricky.
\documentclass[tikz]{standalone}
\usepackage{amssymb}
\usetikzlibrary{decorations.pathreplacing,positioning, calc,shapes.multipart,chains,arrows}
\tikzset{listnode/.style={rectangle split, rectangle split parts=2,
draw, rectangle split horizontal}}
\tikzset{hashtable/.style={rectangle split, rectangle split parts=7,
draw, rectangle split}}
\begin{document}
\begin{tikzpicture}[scale=.2, >=stealth, start chain]
\node[hashtable,inner sep=8pt] (H) {};
\coordinate (x) at ($(H.text split)!.5!(H.two split)$);
\node[listnode,on chain] (A) at ($(x)+(10,0)$) {$12$};
\node[listnode,on chain] (B) {$99$};
\node[listnode,on chain] (C) {$37$};
\node[on chain,inner sep=2pt] (D) {$\varnothing$};
\draw[->] (x) -- (A);
\fill (x) circle (12.5pt); % I'm not sure what number to add here
\draw[*->] let \p1 = (A.two), \p2 = (A.center) in (\x1,\y2) -- (B);
\draw[*->] let \p1 = (B.two), \p2 = (B.center) in (\x1,\y2) -- (C);
\draw[*->] let \p1 = (C.two), \p2 = (C.center) in (\x1,\y2) -- (D);
\end{tikzpicture}
\end{document}
