例如现如今有一链表 其中的值是1234
倒转之后应该是4321
思路
- 定义一个临时头节点
- 将原链表的1234节点取出 放入临时头节点
2.1 此时原链表为1234 临时链表也为1234 - 然后将原链表的指针指向下一个节点
3.1 此时原链表为234 临时链表为1234 - 接下来需要将临时链表的1节点指向空 不然最后结果会是4321234
- 再接下来就可以使用while循环执行遍历操作了
标题
- 定义一个临时的头节点
ListNode tempHead = new ListNode;
- 将原链表的1234节点取出 放入临时头节点
ListNode temp = head.next; //创建一个临时节点用于接收原链表取出的值
tempHead.next = temp; //将临时头节点指向原链表取出的值
- 将原链表指向下一个值
head = temp //指向下一个值 等同于head.next
- 将临时链表的头值指向null
tempHead.next.next = null;
- 使用while循环执行之后的操作
while (true) {
temp = head; //取出原节点
head = temp.next; //指向第三个节点
temp.next = tempHead.next;
tempHead.next = temp;
if(head==null){
break;
}
}