作者worcdlo ()
看板C_and_CPP
標題[問題] 二元樹
時間Sun Mar 5 22:12:04 2017
語言:C++
編譯器:在leetcode上 我也不知道編譯器是什麼
問題(Question):
小弟在刷leetcode中嘗試用二元樹解決一個題目
樹的結構長這個樣子
struct tree{
tree *r;
tree *l;
int val;
int count;
};
當這個樹要traversal時
只要樹中有超過二個元素,就會有這個error
Line 32: member access within misaligned address 0x000300000001 for type
'struct tree', which requires 8 byte alignment
看敘述貌似是資料的儲存空間對應不起來
void traversal(tree *node , vector<int> &solution){
if(node->count==1) solution.push_back(node->val); (←line32)
if(node->r) traversal(node->r,solution);
if(node->l) traversal(node->l,solution);
}
可是明明都是宣告int?
下面是完整程式碼
https://drive.google.com/open?id=0B2_MLdF4iY1lbWZ4NFNtZ0VDdkk
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.10.18
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1488723126.A.5ED.html
※ 編輯: worcdlo (223.141.10.18), 03/05/2017 22:14:35
1F:推 jerryh001: 會不會是沒有檢查node是null的狀況 03/05 22:31
2F:→ worcdlo: 不會阿 遞迴不是有if嗎 if(node->r) 03/05 22:33
3F:→ worcdlo: 我在考慮 leetcode能用new自己拉空間嗎? 03/05 22:35
4F:→ ilikekotomi: 要不要整段code貼過來 這樣版上的高手們 03/05 22:41
5F:→ ilikekotomi: 比較容易發現問題 03/05 22:41
※ 編輯: worcdlo (223.141.10.18), 03/05/2017 22:49:08
6F:→ shadow0326: r和l有初始化嗎 03/05 22:58
7F:→ worcdlo: 你是指自己令他為NULL? 沒有 03/05 23:00
8F:→ worcdlo: Accepted了... 感謝 03/05 23:02
※ 編輯: worcdlo (223.141.10.18), 03/05/2017 23:04:07