利用python怎么对单链表进行反转

  介绍

本文章向大家介绍利用python怎么对单链表进行反转,主要包括利用python怎么对单链表进行反转的使用实例,应用技巧,基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

python可以做什么

python是一种编程语言,内置了许多有效的工具,python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。

1。循环反转单链表

循环的方法中,使用指前向前一个结点,坏蛋指向当前结点,每次把坏蛋→下一指向前即可。

利用python怎么对单链表进行反转

<强>代码:

class  ListNode:,   def 才能__init__(自我,x):,   ,,,self.val=x,,   ,,,self.next=没有;,   ,   def  nonrecurse(头):,,,,,,,#循环的方法反转链表,   if 才能head  is  None 或是head.next  is 没有:,   ,,,return 头,,   ,,以前=没有;   ,,坏蛋=头;   ,,h=头;   坏蛋:while 才能;   ,,,h=坏蛋;,   ,,,tmp=cur.next;,   ,,,cur.next=前,,   ,,,=坏蛋;之前,   ,,,坏蛋=tmp;,   ,,return  h;   ,,   头=ListNode(1);,, #测试代码,   p1=ListNode(2);,,, #建立链表1→2→3→4→没有,,   p2=ListNode; (3),   p3=ListNode; (4),   head.next=p1;,   p1.next=p2;,   p2.next=p3;,   p=nonrecurse(头);,,#输出链表,4→3→2→1→None    while  p:,   p.val; print 才能;   p=才能p.next;

<强>结果:

4
3
2
1
在祝辞祝辞

2。递归实现单链表反转

class  ListNode:,   def 才能__init__(自我,x):,   ,,,self.val=x,,   ,,,self.next=没有;,   ,   ,,   newhead def 递归(头):,,#递归,头部为原链表的头结点,newhead为反转后链表的头结点,   if 才能;head  is 没有:,   ,,,return ,,   if 才能;head.next  is 没有:,   ,,,newhead=头,,   时间:else 才能;   ,,,newhead=递归(head.next newhead),,   ,,,head.next.next=头,,   ,,,head.next=没有;,   newhead; return 才能;   ,,   头=ListNode(1),,,,,,,,, #测试代码,   p1=ListNode(2),,,,,,,,,, #,建立链表1→2→3→4→None    p2=ListNode; (3),   p3=ListNode; (4),   head.next=p1;,   p1.next=p2;,   p2.next=p3;,   newhead=没有,,   p=递归(头,newhead);,,,,,, #输出链表4→3→2→1→None    while  p:,   p.val; print 才能;   p=才能p.next;

到此这篇关于利用python怎么对单链表进行反转的文章就介绍到这了,更多相关的内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

利用python怎么对单链表进行反转