方法一
当p2不等于空的时候就一直执行代码,因为我们始终以p2作为判断的条件,如果是要删除的,就只将p2向后移,如果不是,p1和p2都向后移动,直至p2等于null。
节点类以及重写的toString方法。
调试过程
方法二
在此方法中,如果没有节点了,直接返回,如果是需要删除的节点,只返回该节点的后续,不返回该节点,如果不是需要删除的节点,则需要返回该节点以及后续的节点,这就体现在else语句中更新p的next,这样相当于带上后续的节点,因为是递归,所以在方法中调用方法,参数需要是此时p的下一个节点,即p.next。