链表

从头到尾打印链表

连接:https://blog.csdn.net/imbingoer/article/details/85884474
https://blog.csdn.net/ftell/article/details/80826235

Java栈Stack方法的总结

ArrayList类

Java中List,Array,ArrayList的区别

System.arraycopy和Arrays.copyOfRange的详细区别

  • Arrays.copyOfRange改变的是引用,即使引用指向了一个新的数组.
  • System.arraycopy改变的是原数组.
  • 在函数传参数时,传递的是引用,如果使得该引用指向的对象发生了改变,那么原来指向的数组将不会改变,也就是说在函数外(调用函数的地方)的数组是不会改变的.

复杂链表的复制

  • 重要是要明白题意,即复制一个完整的链表

  • 复杂的原因是不能指向原来的链表的内容,所以对于随机指向的节点进行初始化很困难,所以会在原链表的基础上先进行旧表的复制,然后再复制随机节点,最后将两个表进行分离。
    参考链接

    public class Solution {
      public RandomListNode Clone(RandomListNode pHead)
      {
         RandomListNode p=pHead;
          RandomListNode t=pHead;
          while(p!=null){
              RandomListNode q=new RandomListNode(p.label);
              q.next=p.next;
              p.next=q;
              p=q.next;
          }
          while(t!=null){
              RandomListNode q=t.next;
              if(t.random!=null)
                  q.random=t.random.next;
              t=q.next;
    
          }
          RandomListNode s=new RandomListNode(0);
          RandomListNode s1=s;
         while(pHead!=null){
             RandomListNode  q=pHead.next;
             pHead.next=q.next;
             s.next=q;
             s=s.next;
             pHead=pHead.next;         
         }
          return s1.next;
    
      }
    }
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务