\documentclass{article}

\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}

\tikzset{
  every tree node/.style={minimum width=1cm,draw,circle},
  nullptr/.style={draw=none},
  edge from parent/.style={draw, edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}},
  level distance=2cm
}

Initial tree

\begin{tikzpicture}
\Tree
[.$a$
  [.$b$
	[.$x$ ]
	[.$y$ ]
  ]
	[.$z$ ] 
  ]
]
\end{tikzpicture}

Rotate Right (applied to $a$)

\begin{tikzpicture}
\Tree
[.$b$
  [.$x$ ]
  [.$a$
	[.$y$ ]
	[.$z$ ]
  ]
]
\end{tikzpicture}

Rotate Left (applied to $b$) takes us back to the original tree:

\begin{tikzpicture}
\Tree
[.$a$
  [.$b$
	[.$x$ ]
	[.$y$ ]
  ]
	[.$z$ ] 
  ]
]
\end{tikzpicture}

\pagebreak

In general Rotate Right helps fix unbalanced trees like this:

\begin{tikzpicture}
\Tree
[.3
  [.2
	[.1 ]
    \node[nullptr]{};
  ]
  \node[nullptr]{};
]
\end{tikzpicture}

And Rotate Left helps fix unbalanced trees like this:

\begin{tikzpicture}
\Tree
[.1
  \node[nullptr]{};
  [.2
    \node[nullptr]{};
	[.3 ]
  ]
]
\end{tikzpicture}
\end{document}
