作者seal46825 (Vanish)
看板C_and_CPP
標題[問題] leetcode二元樹問題求救
時間Mon Jul 22 23:04:29 2019
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值不是不同嗎?
為何竟然沒有執行到這個條件
看好久都看不出來... 求解
-----
Sent from JPTT on my Asus ASUS_Z01RD.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.211.42 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1563807871.A.E47.html
推 ko27tye: 這題是鏡像反射 所以最左邊節點要對映最右邊節點 07/22 23:28
→ ko27tye: 而你把題目想成子樹的左節點=右節點了 07/22 23:29
→ seal46825: 阿乾我真的眼殘 感謝k大 07/22 23:58
→ seal46825: 最近睡眠不足頭殼秀逗秀逗XDD 07/22 23:58
→ Gway: 刷leetcode有團嗎?可以加嗎?謝謝 07/23 07:20
→ seal46825: 我自己用C在刷 但我都刷簡單的而已 07/23 08:23
推 clh960524: 想加團+1 07/23 23:28
推 dces4212: 請問大家一般都如何驗證自己的解法有沒符合要求 是有其 07/24 11:20
→ dces4212: 他測資軟體之類嗎? 感謝! 07/24 11:20
推 art1: vscode有leetcode套件,會自動幫你帶預設的測資,只有一筆 07/25 00:15
→ art1: 或是直接上傳leetcode網站就幫你套測資了 07/25 00:16
推 alan23273850: 感謝樓上 長知識了 這世界真可怕 XD 07/25 02:07