数据结构Java版,刚学写了一点不知道有没有问题,求大佬帮看看QAQ

要求是返回删除的从第i个结点开始、长度为n子表,改变this
public SinglyList remove(int i,int n)
{
int length=0;
for(Node r=this.head.next;r!=null;r=r.next)
length++;
Node p=this.head;
SinglyList list=new SinglyList();
Node q=list.head;

for(int j=0;p.next!=null&&j p=p.next;
Node now=p;

if(n<=length-i)
{
for(int j=0;p.next!=null&&j {
q.next=new Node(p.next.data,null);
}
now.next=p.next;
}
if(n>length-i)
{
for(int j=0;p.next!=null&&j<=length-i;j++,q=q.next,p=p.next)
{

            q.next=new Node<T>(p.next.data,null);
        }
        now.next=null;
    }
    return list;

}

不知道有没有问题什么什么问题,,,,

题主可以测试测试呗,,

先说几个问题
【1】链表的话,for循环不给力啊,,,while合适点

【2】一次遍历应该就可以了,,题主这先求长度,再判断,再删除,,,,繁琐了,

.........

下面时伪代码,,仅供参考:

 Node p = head;//先把指针放到开始,此处对象可以当指针用
while(p!=null){
    p.value;//这个就是遍历链表取到的值
    p = p.next;//访问下一个
}