2013-11-10 15 views
0

我想在java中編寫藤蔓方法/骨幹方法,但它似乎並沒有像我正確地做,因爲我得到了運行時錯誤。java樹中的骨幹方法

這裏是我做過什麼至今:

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;

有人可以幫忙嗎?

+0

什麼是運行時錯誤? –

+0

java.lang.NullPointerException – rullzing

+1

「tmp = tmp;」沒有多大意義。 –

回答

0

大概tmp.right是空的

prev = tmp.right; 

然後你就會在

tmp.right = prev.left; 

獲得NPE你的代碼的錯過了什麼 「根」 實際上是。

+0

當我使用tmp = root時,tmp將成爲root用戶; 對不對? – rullzing

+0

是的,但根源從哪裏來? –

+0

我寫了這個tmp = root;在開始時 – rullzing