まず最初に、その各部分を印刷して、何がヌルかを調べてみてください。問題を引き起こしている部分に到達すると、NPE を取得する必要があります。これにより、左右が別々の障害に分かれます。これらの別々の行を作成し、両方が失敗した場合、最初の行でのみ失敗することに注意してください。
今:
if (current.leftChild.iData != '+' && current.rightChild.iData != '+') >このコード行について、現在のノードの leftChild と >現在のノードの rightChild をチェックしようとしていますboth == '+' または文字プラス記号。>どちらでもない場合 = 文字 + i 他のコードを実行したい
あなたが書いたコードは、(例外をスローしないと)あなたが望んでいることをテストしません。どちらかが != から '+' かどうかを確認したいと言っていましたが、このコードは両方が != '+' であるかどうかのみをテストするため、キャッチするつもりだったと思われるいくつかの条件が欠落しています。実際、どちらかが「+」と等しくない場合に他のコードを実行したい場合は、
if (current.leftChild.iData == '+' && current.rightChild.iData == '+')
{
//code you execute if both are equal to '+'
}
else
{
//code you execute if either (or both) is not equal to '+'
}