hiapple_
hiapple_
采纳率100%
2017-10-15 07:11

数据结构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;

}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Small_Mouse0 鼠小 4年前

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

    题主可以测试测试呗,,

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

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

    .........

    点赞 1 评论 复制链接分享
  • Small_Mouse0 鼠小 4年前

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

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

相关推荐