头插法实现单链表的倒转

例如现如今有一链表 其中的值是1234
倒转之后应该是4321

思路

  1. 定义一个临时头节点
  2. 将原链表的1234节点取出 放入临时头节点
    2.1 此时原链表为1234 临时链表也为1234
  3. 然后将原链表的指针指向下一个节点
    3.1 此时原链表为234 临时链表为1234
  4. 接下来需要将临时链表的1节点指向空 不然最后结果会是4321234
  5. 再接下来就可以使用while循环执行遍历操作了

标题

  1. 定义一个临时的头节点
ListNode tempHead = new ListNode;
  1. 将原链表的1234节点取出 放入临时头节点
ListNode temp = head.next;		//创建一个临时节点用于接收原链表取出的值
tempHead.next = temp;			//将临时头节点指向原链表取出的值
  1. 将原链表指向下一个值
head = temp 				//指向下一个值 等同于head.next
  1. 将临时链表的头值指向null
tempHead.next.next = null;
  1. 使用while循环执行之后的操作
while (true) {
            temp = head;           //取出原节点
            head = temp.next;      //指向第三个节点
            temp.next = tempHead.next;
            tempHead.next = temp;
            if(head==null){
                break;
            }
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值