看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win 8 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) LeetCode 最近在練習用C寫LeetCode的題目 題目: https://leetcode.com/problems/find-mode-in-binary-search-tree/ 我的想法是利用In-Order把BST的節點通通由小到大放入ary陣列中 再另外開一個陣列b來放每個元素出現的個數 程式碼: http://codepad.org/fRoufhCU (只附上leetcode需要的部分,main就沒貼上來) 假設BST的所有節點為{-3,1,1,2,2,3,4,4,5} (已由小到大排列),如下圖 http://imgur.com/GfhLdN5.jpg
在DevC上可以順利執行 但丟到LeetCode上就會有如右圖的錯誤 http://i.imgur.com/jeYB4ld.jpg 完全找不出錯在哪.......... 先謝謝各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.64.211.188 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1486748062.A.07B.html
wawi2: *returnSize. Why is there a star? 02/11 07:04
因為LeetCode題目規定Return an array of size *returnSize int* findMode(struct TreeNode* root, int* returnSize) { } 也很明顯是要用傳記憶體位址的方式傳入 findMode function內 ※ 編輯: woody3724 (61.64.210.30), 02/11/2017 08:07:47
nick5130: 你沒有處理到node->val是NULL的情況 02/11 09:07
nick5130: 我猜你的code會把NULL當成一個值,所以[1,null,2,2]長是 02/11 09:34
nick5130: 4 或許你在你的DevC上可以跑 但是assign一個int為NULL 02/11 09:34
nick5130: 還蠻奇怪的 也不能保證每次都成功吧 02/11 09:35
nick5130: 不好意思 請忽略我上面四行吧 XDDD 02/11 10:14
nick5130: 本來以為要自己建樹所以才有上面的推文 02/11 10:23
niwota: 應該是錯在void inorder(...) 裡的static int index=0 02/11 10:24
niwota: leetcode在換另一棵樹去跑你的index值還在,不會變回0 02/11 10:25
太感謝了!! 原來問題出在這!! 已經解決 感恩 ※ 編輯: woody3724 (61.64.210.30), 02/11/2017 10:51:51