好久没看代码了,不敢肯定我说的是对的,我试着分析一波我感觉问题出在下面的p->next=s比如说你想插入到第二个位置,那么i=2是吧然后你的while循环,i=1<2,停止循环,你看看这时候,你把下一个位置的地址给了p,也就是此时p指向第二个元素的位置然后来到下面,你新建了一个节点,把你要插入的值存进去,然后,这时候,你把这个新建的节点插到哪去了呢,你插到了当前位置的下一个位置!也就是第3个位置!