JAVA 实现带头结点的链表根据节点大小按顺序新增、修改、删除节点 该文章已实现单向链表的创建及遍历等操作。
那么在此基础上,如何实现单向链表的反转呢?
实现思路:
1、遍历原链表,并定义临时节点current(当前遍历到的节点)
1)遍历到一个节点,就将current的next 先存放到一个变量节点next中,因为要将当前节点插入到新链表,如果不存放当前节点的next就会导致遍历时指针丢失 即:next = current.next
2)然后要将当前节点current添加到新链表的头节点后面,所以要建立current与新链表头节点上一次的next节点的关系,即:current.next = newhead.next。此时就建立了新链表中cur与next节点的关系。
3)因为新链表中头节点与当前节点的关系还没有建立,所以需要新链表的头节的next需要指向当前插入的节点,即: newhead.next = current
4)因为是循环,所以需要在遍历原链表时将指针后移,则 current= current.next。第一步已将cur.next存放到next中,所以直接赋值即可:current= next