hw3打卡

PART I

smoosh多用几个循环就可以了,创建一个新的数组用于临时存储。

public static void smoosh(int[] ints) {
    int[] reads= new int[ints.length];
    for (int i=0;i<ints.length;i++) {
        reads[i]=-1;
    }
    reads[0]=ints[0];
    int j=1;
    for (int i=1;i<ints.length;i++) {
        if(ints[i-1]!=ints[i]) {
            reads[j]=ints[i];
            j++;
        }
    }
    for(int i=0;i<ints.length;i++) {
        ints[i]=reads[i];
  }
  }
View Code

PART II

之前没有加size>0的判断条件,结果最后一项list9的squish总是报错,因为它是空的,head本身就是null,不存在null.next,所以有currentNode.next的判断一定会出错。

public void squish() {
      SListNode currentNode=head;
      if(size>0) {
      while(currentNode.next!=null) {
          if(currentNode.item.equals(currentNode.next.item)) {
              currentNode.next=currentNode.next.next;
              size--;}      
          else 
              currentNode=currentNode.next;
     }
    }
  }
View Code

PART III

 public void twin() {
      SListNode currentNode=head;
         while(currentNode!=null) {      
            currentNode.next=new SListNode(currentNode.item,currentNode.next);;
            currentNode=currentNode.next.next;
      size=size*2;
    }
  }
View Code

原文地址:https://www.cnblogs.com/jxtang/p/7207311.html