- ベストアンサー
Singly linked listで最後から二番目に挿入
先週、テストがありました。 結構自信があったんですが、教授によるとすごく悪かったそうです…(結果はまだもらっていません)。 それで「問題全部、もう一度家でやり直してこい」と言われました。 下がその問題の一つです。 Write a method to insert a new node into a singly linked list before the tail node. If the list is empty, then the new node will be both the head and the tail node. This method will be a member of IntSLList class given on page 74. public void addBeforeTail(int el) { // ブランク そのIntSLList.javaはIntNode.javaとセットで使われます(でもどちらもmainがないんです)。 そしてここ↓にあります。 http://www.mathcs.duq.edu/drozdek/DSinJava/. (きっと)基となるメソッド(IntSLList.java内) public void addToTail(int el) { if (!isEmpty()) { tail.next = new IntNode(el); tail = tail.next; } else head = tail = new IntNode(el); } 私自作のメソッド public void addBeforeTail(int el) { if (!isEmpty()) { tail = new IntNode(el); tail.next = tail; } else head = tail = new IntNode(el); } リストの最後の一つ手前に挿入するんでしょうが Double linked listならnextとpreviousがあって tail.previous = new IntNode(el); tail = tail.previous; にすれば解決だと思うのですが、 Singlyだとnextしかないのでどうすればいいのかはっきり分かりません。 勘で基となるだろうメソッドを逆にしてみました。 上の私自作のメソッドであってますでしょうか? Javaの神様、どうかお助け下さい。m(__)m
- みんなの回答 (4)
- 専門家の回答
お礼
ありがとうございます。 間違いには気付きましたがもうだめぽいです。 忙しすぎて咀嚼せずに飲み込むような勉強しかできないんですよね、明日もまた授業が…。 もういっそ回線切って首[以下略]