码迷,mamicode.com
首页 > 其他好文 > 详细

头插法将单链表原地逆转

时间:2020-02-25 20:16:30      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:head   rev   width   自己   sel   掌握   指针   image   code   

如果你看到标题就知道我在说什么,那么出门左拐,自己动手写一下伪代码。
只有自己亲手写出和画出,才能更好的掌握。

技术图片

现在有一个链表,Head指向头

技术图片

然后使用temp保存Head中原来含有的结点的第一个结点,此时p指向第一个待插入结点

此时将head尾部置空

技术图片

将 p 加入head头部,然后 p 后移一位。往复多次,直到 p 空

1     def reverse(self):              #头插法原地逆转链表
2         p = self.head               #p指向工作结点
3         self.head = None            #将头指针看做一个空空的干净的头指针
4         while p:
5             temp = self.head        #保存头指针已经保存了的后续结点的第一个结点
6             self.head = p           #将新结点头插法接到头指针上  之后的步骤不能反过来哦,否则结果不是预期的结果
7             p = p.Next              # STEP 1 :先将工作指针 p 后移到下一位
8             self.head.Next = temp   # STEP 2 :然后再把原来的 head 的后面的结点 temp 连接到新加入的结点后面
9 #注:STEP 1 和STEP 2 务必不要颠倒  因为如果先执行 self.head.Next = temp 那么 p 的next就会变成 temp 是吧(你品品)

头插法将单链表原地逆转

标签:head   rev   width   自己   sel   掌握   指针   image   code   

原文地址:https://www.cnblogs.com/Halo-zyh-Go/p/12363058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!