看板 java 關於我們 聯絡資訊
小弟正在自學JAVA 研究了好幾天的鏈結串列 這個值的部分始終看不是很懂 public Node input() { Node eq = null, prev = null; String temp; Scanner into = new Scanner(System.in); int i = 0; while(true) { ptr = new Node(); ptr.next = null; i++; System.out.print("請輸入第"+i+"個數字"); ptr.data = into.nextInt(); if(ptr.data == 0) return eq; if(eq == null) eq = ptr; else prev.next = ptr; prev = ptr; } } 我不懂為什麼要回傳的值是eq耶 看起來回傳prev或者是ptr都可以阿 而且我測試了一下ptr和prev都沒有記錄全部的值耶 只有eq有記錄 可以請教一下是為什麼嘛!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.170.5
ericinttu:當使用者第一次輸入數字1時, eq, ptr, prev 指到什麼? 08/24 00:22
ericinttu: 第二次輸入數字2時, eq, ptr, prev 指到什麼? 08/24 00:23
nvidia:不回傳eq要回傳誰?? 08/24 00:24
nvidia:eq是Node的頭 08/24 00:29
bala045:傳回第一個node 第一個就是eq 如果輸入0就結束的話 08/24 02:11
pim79979:可是不是只有第一次輸入的時候eq等於null接下來ptr的值 08/24 22:11
pim79979:不都傳到prev裡嗎 eq,ptr,prev不都自己是一個鏈結串列!? 08/24 22:16
nvidia:你知道linkedlist在幹麼嗎 08/24 23:30
pim79979:我的Node是一個鏈結串列 不裡面他的next都會指向下Node嗎 08/25 00:23
pim79979:所以我每個設成Node的變數不都會各自成為個鏈結串列嗎!? 08/25 00:26
nvidia:ptr在每個LOOP都有變動 只有ep沒有 08/25 00:40
nvidia:所以當然不會紀錄全部的值阿! 08/25 00:41
nvidia:建議你畫個圖來演繹! 08/25 00:53
pim79979:我不懂是 eq只有一開始有接到值後來接的都是prev 08/25 21:55
pim79979:那eq的值是怎麼傳過去的 不好意思 對鍊結串列不是很懂 08/25 21:58
nvidia:最簡單的方法是用IDE的DEBUGGER設定breakpoint跑 08/25 23:04
ericinttu:你可以分別畫出輸入3次資料時的狀態圖嗎? 一直鬼打牆... 08/26 09:50