LinkedList 里面还有个具有添加功能的函数,上回学漏了,这回补上。
它就是linkBefore()------在一个非空节点前,插入数据
这里打上个断点
点击下一步。先把size除二 ,去比较。具体的这个node()方法,我们之前学过,这里跳过。这个方法,其实就是返回我们要查找索引位的节点的地址。
然后我们再点击下一步,这里的第一步,第二步,第三步。我们都看到很多次这种套路了,因为我们要在succ节点前插入数据e,
所以先保存这个节点的前置节点的地址给 pred。 然后创建新节点,把e 放进这个新节点,然后让新节点指向 succ节点的前置节点,并且让新节点指向这个succ节点。 然后让 succ的前置节点 也指向新节点,因为我们的链表是双向链表
这里再次点击下一步。这里需要判断 是否succ的前置节点是否为空,也就是succ是否是第一个节点
如果为null(说明succ是第一个节点),那么就把first 引用新节点,那么就是把的新节点作为第一个节点。这里我们是false
再次点击下一步。让 succ的前置节点 指向新节点,然后size++,modCount++,这个方法就调用结束了。
下面是图解: