[問題] 關於鏈結串列的值

看板java作者 (~窩窩~)時間15年前 (2010/08/24 00:12), 編輯推噓7(7011)
留言18則, 4人參與, 最新討論串1/1
小弟正在自學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

08/24 00:22, , 1F
當使用者第一次輸入數字1時, eq, ptr, prev 指到什麼?
08/24 00:22, 1F

08/24 00:23, , 2F
第二次輸入數字2時, eq, ptr, prev 指到什麼?
08/24 00:23, 2F

08/24 00:24, , 3F
不回傳eq要回傳誰??
08/24 00:24, 3F

08/24 00:29, , 4F
eq是Node的頭
08/24 00:29, 4F

08/24 02:11, , 5F
傳回第一個node 第一個就是eq 如果輸入0就結束的話
08/24 02:11, 5F

08/24 22:11, , 6F
可是不是只有第一次輸入的時候eq等於null接下來ptr的值
08/24 22:11, 6F

08/24 22:16, , 7F
不都傳到prev裡嗎 eq,ptr,prev不都自己是一個鏈結串列!?
08/24 22:16, 7F

08/24 23:30, , 8F
你知道linkedlist在幹麼嗎
08/24 23:30, 8F

08/25 00:23, , 9F
我的Node是一個鏈結串列 不裡面他的next都會指向下Node嗎
08/25 00:23, 9F

08/25 00:26, , 10F
所以我每個設成Node的變數不都會各自成為個鏈結串列嗎!?
08/25 00:26, 10F

08/25 00:40, , 11F
ptr在每個LOOP都有變動 只有ep沒有
08/25 00:40, 11F

08/25 00:41, , 12F
所以當然不會紀錄全部的值阿!
08/25 00:41, 12F

08/25 00:53, , 13F
建議你畫個圖來演繹!
08/25 00:53, 13F

08/25 21:55, , 14F
我不懂是 eq只有一開始有接到值後來接的都是prev
08/25 21:55, 14F

08/25 21:58, , 15F
那eq的值是怎麼傳過去的 不好意思 對鍊結串列不是很懂
08/25 21:58, 15F

08/25 22:59, , 16F

08/25 23:04, , 17F
最簡單的方法是用IDE的DEBUGGER設定breakpoint跑
08/25 23:04, 17F

08/26 09:50, , 18F
你可以分別畫出輸入3次資料時的狀態圖嗎? 一直鬼打牆...
08/26 09:50, 18F
文章代碼(AID): #1CSfu0Mf (java)