美文网首页程序员Python
001单链表逆序就地逆序法

001单链表逆序就地逆序法

作者: DKider | 来源:发表于2019-02-07 15:08 被阅读38次

题目
给定一个带头节点的单链表:
head->1->2->3->4->5->6->7->8
使其成为:
head->8->7->6->5->4->3->2->1

就地逆序法(这是方法一,后续会有其他方法)

python语言中并没有指针和数组,因此用引用来实现
先定义一个节点对象——有数据和后续节点地址两部分组成

class LNode:
def __init__(self, x):
    self.data = x
    self.next = None
def Reverse(head):
''' 有头节点
:param head:
:return:
'''
# 判断链表是否为空
if head is None or head.next is None:
    return
pre = None
cur = None
next = None
# 处理链表头
cur = head.next
next = cur.next
cur.next = None
pre = cur
cur = next
# 转变当前节点指向
while cur.next != None:
    next = cur.next
    cur.next = pre
    pre = cur
    cur = next
# 处理最后一个节点与倒数第二个节点
cur.next = pre
# 添加头节点
head.next = cur
if __ name __ == '__main __':
i = 1
head = LNode(None)
# head.data=None
# head.next=None
cur = head
tmp = None  # 用作添加新节点
# 构造单链表
while i <= 8:
    tmp = LNode(i)
    # tmp.data=i
    # tmp.next=None
    cur.next = tmp
    cur = tmp
    i += 1
print("BeforeReverse:")
cur = head.next
while cur != None:
    print(cur.data)
    cur = cur.next
print("\nAfterReverse:")
Reverse(head)
cur = head.next
while cur != None:
    print(cur.data)
    cur = cur.next

输出如下:(我用的pycharm)


image.png

写在最后:
我对Markdown语法还不太熟悉,不太明白怎么把代码正确的显示出来。例如上面的if __ name __ == "__ main __" 我不能使它成为代码的一部分,这让我很头疼。请大家教教我谢谢。
本文代码在我的Github上有“https://github.com/Gesujian/python-”如发现错误请指正,谢谢^ _^

相关文章

  • 001单链表逆序就地逆序法

    题目给定一个带头节点的单链表:head->1->2->3->4->5->6->7->8使其成为:head->8->...

  • 单链表 常用操作(golang)

    (单链表备忘记录)知识点: 单链表结构 创建链表方法头插法创建尾插法创建 遍历链表 逆序反转链表迭代递归头插法就地...

  • LeetCode 2. Add Two Numbers

    单链表逆序相加

  • 单链表翻转

    单链表的就地逆置:就地逆置即空间复杂度为O(1)一:用数组存储单链表的值,然后重新逆序赋值,效率较低。二:利用三个...

  • 1.链表

    主要内容 包含题目: 链表基础知识: 上页的答案: 题目 例1 链表逆序 206 easy 方法一 就地逆置法 方...

  • Leetcode-Medium-2 Add Two Number

    题目 思路 给定两哥数字非负的单链表,每条单链表逆序存储着一个数字。将两条单链表存储的数字相加,并逆序放入单链表中...

  • 逆序单链表

    1、对一个单链表进行逆序操作。逆序之前为 head-->A-->B-->C-->None逆序之后为 head-->...

  • 单链表逆序

    1.创建链表结构 2.新建节点 3.打印函数 4.main函数实现 5.打印结果

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

网友评论

    本文标题:001单链表逆序就地逆序法

    本文链接:https://www.haomeiwen.com/subject/swzwsqtx.html