单向链表的反转 python,双向链表 python

  单向链表的反转 python,双向链表 python

  本文主要介绍Python实现单链表中元素的倒置。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  给定一个链表,反转它。其实很容易认为你只需要修改每个节点的指针指向:也就是后面的节点指向前面的节点,头指针指向最后的节点。

  这个过程可以通过循环或递归来实现。

  1、用循环来实现:

  LNode:级

  def __init__(self,elem):

  self.elem=elem

  self.pnext=None

  定义反向(头):

  如果head为none或者head.pnext为none : #如果输入链表为空或者只有一个节点,则直接返回当前节点。

  回程头

  Pre=None #用于指向前一个节点

  Cur=newhead=head #cur是当前节点。指向当前新的头节点。

  而cur:

  newhead=cur

  temp=cur.pnext

  Cur.pnext=pre #将当前节点的指针指向前一个节点

  前=当前

  cur=温度

  返回newhead

  if __name__==__main__:

  head=LNode(1)

  p1=LNode(2)

  p2=LNode(3)

  head.pnext=p1

  p1.pnext=p2

  p=反向(头部)

  而p:

  打印(第一页)

  p=p.pnext

  2、用递归来实现:

  LNode:级

  def __init__(self,elem):

  self.elem=elem

  self.pnext=None

  定义反向(头):

  如果不是头或者不是头. pnext:

  回程头

  else:

  newhead=reverse(head.pnext)

  Head.pnext.pnext=head #使下一个节点的指针指向当前节点。

  Head.pnext=None #断开当前节点与下一个节点的指针连接,使其指向null。

  返回newhead

  if __name__==__main__:

  head=LNode(1)

  p1=LNode(2)

  p2=LNode(3)

  head.pnext=p1

  p1.pnext=p2

  p=反向(头部)

  而p:

  打印(第一页)

  p=p.pnext

  下面是说明递归的详细过程:

  这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: