迭代地反复双重链接列表

时间:2016-07-23 15:16:02

标签: java doubly-linked-list

我有一个双向链表,我必须反复反转。

    import java.util.*;

public class DLL {

public static Node reverse (Node head){
     if(head == null)
            return null;
        else{
            Node temp=head;
            Node buffer=null;
            while(temp.next != null){            
                buffer=temp.next;
                temp.next=temp.prev;
                temp.prev=buffer;
                temp=buffer;
            }
            head=temp.prev;
            return head;
        }       

}

public static Node insert(Node head,int data){
    if(head == null)
        return new Node(data);
    else{
        Node temp=head;
        while(temp.next != null){
            temp=temp.next;
        }
        Node cur = new Node(data);
        temp.next=cur;
        cur.prev=temp;
        return head;
    }

}

public static void Display(Node head){
    if(head != null){
        System.out.println(head.data);
        Display(head.next);
    }
}

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);

    Node head= null;
    int size = s.nextInt();

    while(size-- != 0){
        head=insert(head,s.nextInt());
    }

    Display(head);
    head=reverse(head);
    System
    Display(head);
}

}

现在我得到一个反向列表,但我不能打印第一个元素,即原始列表的最后一个元素 我的DLL节点类就像这样

    class Node {
 int data;
 Node next;
 Node prev;

}

我在这里做错了什么?

0 个答案:

没有答案