http://i.imgur.com/ShYgTdP.jpg
http://i.imgur.com/UOGULZV.jpg
原始碼: https://pastebin.com/raw/sGAVF2f1
這題是要判斷一個二元樹是否為對稱
求大大解惑
我看了一個晚上還是看不懂...
不懂的部分是
23行把root的左右子節點丟入函數checkNodes裡面
root的左右子節點都是2
因此對應到checkNodes函數裡面看
前三個if都沒有包含到這個狀況
因此會把這兩個節點的左右子節點
也就是二元樹的第三階 3 4 、4 3分別丟進function裡面
問題來了3、4兩個值不相同
由於第12行的if條件a、b兩值不相同
應該要return false
由於第三階3 4、4 3兩組都要回歸false
跳出遞迴後 false&&false也是false
所以最後的結果應該也是false
但是結果卻是true
而且我在第12行的if下面敘述裡
加一個printf("TEST\n");
根本沒有看到有執行這行
但是2的左右子節點3與4值不是不同嗎?
為何竟然沒有執行到這個條件
看好久都看不出來... 求解