0

我正在尝试在 java 中编写一个 vine 方法/backbone 方法,但似乎我做得不对,因为我遇到了运行时错误。

这是我到目前为止所做的:

public void vine() {
  class<T> p = new class<T>(), tmp, prev;
 tmp = root;
 while(tmp != null)
 {
  if( tmp.left != null )
   {
     prev = tmp.right;
    tmp.right = prev.left;
      prev.left = tmp;
   tmp = tmp;  
  }
  else
  {
    tmp = tmp.right;
}


}
 }

运行时错误似乎在这一行: tmp.right = prev.left;

有人可以帮忙吗?

4

1 回答 1

0

可能 tmp.right 在

prev = tmp.right;

然后你会得到一个NPE

tmp.right = prev.left;

您的代码缺少“root”实际上是什么。

于 2013-11-10T19:11:03.407 回答