在给定位置之后删除节点并在单个链接列表中前进

时间:2017-08-04 15:23:35

标签: java

我在下面的代码中遗漏了什么。该代码是关于在其头部和位置从链接列表中删除节点。我的程序没有通过所有测试用例。

Node Delete(Node head, int position) {

   // Node temp=head;
    int count=1;
    if(position==0){
       head=head.next;
       return head; 
    }
    if(position==1){
        head=head.next.next;
        return head;
    }
    if(position>1){
        Node temp=head;
        while(count<position){
            count++;
            temp=temp.next;
        }
        temp.next=temp.next.next;
    }
    return head;
}

输入

4

3

1 2 3

0

3

1 2 3

1

3

1 2 3

2

5

4 3 2 5 1

2

我的输出

23

12 4351

预期输出

23 13 12 4351

1 个答案:

答案 0 :(得分:1)

public static Node Delete(Node head, int position) {
           Node node = head;
           Node prevNode = null;
           int index = 0;
        if (head == null && position == 0){
             return head;
           }
         if (head != null && position == 0){
               head = null;
               head = node.next;

           }
           if (position > 0){
           while(index<position){
               prevNode = node;
               node = node.next;
               index = index + 1;
           }
           prevNode.next = node.next;
           node = null;
           }

         return head;
    }