如何编写将项添加到链表并按字母顺序对其进行排序的方法?

时间:2016-03-12 22:44:04

标签: java singly-linked-list

我认为我有一个良好的开端,但当我运行测试程序时,我得到:SortedLinkedList @ 2a139a55 这是否意味着我的toString()或add()方法有问题?

 public void add(String data) {
            StringNode current = head;
            StringNode newNode = new StringNode(data);

            if (head == null) {
                head = newNode;
            } // End if

            else {
                while (current != null) {
                    if (data.compareTo(current.data) < 0)
                        break;
                    previous = current;
                    current = current.getNext();

                } // End while
            } // End else with while

        }// End add

我的toString()位于一个名为StringNode的内部类中:

public static class StringNode {
        private String data;
        private StringNode next;

        public StringNode(String newData) {
            data = newData;
            next = null;
        }

        public String getData() {
            return data;
        }

        public void setData(String newData) {
            this.data = data;
        }

        public StringNode getNext() {
            return next;
        }

        public void setNext(StringNode nextNode) {
            this.next = next;
        }// End setNext

        public String toString() {

            return data;
        }// End toString

    }// EndStringNode class

1 个答案:

答案 0 :(得分:3)

除了正确处理空列表之外,当你找到一个位置时,你实际上并没有将新节点放入列表中。

在while循环中,if语句还需要将newNode插入到列表中,但您所做的只是突破。

您还必须正确处理极端情况:当newNode成为新头或newNode成为新尾时。