为什么我无法使用链接列表实现从堆栈弹出元素?

时间:2017-04-07 07:58:17

标签: java linked-list stack

问题:

我无法第二次弹出元素。 例如,我有4,3,2,1,堆栈顶部有4个。我无法删除3,2

  

任何人都可以指导我为什么吗?

以下是Stack Implementation:

public static void push(int data){
        if(head==null){
            Node newNode=new Node(data);
            head=newNode;
        }else{
            Node newNode1=new Node(data);
            newNode1.next=head;
            head=newNode1;
    }

    }
    public static int pop(){
        if(head==null){
            return 0;
        }
        else{
            Node temp=head;
            int a=temp.data;
            temp=null;
            return a;
        }
    }
    public static void traverse(){
        Node temp=head;
        while(temp!=null){
            System.out.println(temp.data);
            temp=temp.next;

        }
    }

2 个答案:

答案 0 :(得分:1)

您没有从列表中删除元素,只需将指向head的变量设置为Null即可。这并没有改变linkedList。

您有两种选择:

  1. 使用linkedlist中的内置函数从列表中删除元素。
  2. 更改list.head并将其指向下一个元素。
  3. 在案例2中,您必须在pop方法中添加以下内容:

     head = head.next;
    

答案 1 :(得分:1)

你的pop方法有问题

rsync -av /path1/dir1 /path2/dir2

你忘了把头移到下一个节点。