翻转单链表

作者: b64c74899092 | 来源:发表于2016-08-25 23:25 被阅读108次

翻转单链表

方法一:将单链表头插到一个新链表中

浪费空间,不过简单


方法二:使用三个指针遍历单链表,逐个点进行翻转

p=head
q=head->next
head->next=null

while(q->next!=null){
    r=q->next
    q->next=p
    p=q
    q=r
}

方法三:从第三个节点到最后一个节点,依次将其插入到第一个节点之后,最后将第一个节点移到表尾

ListNode* p; 
ListNode* q; 
p=head->next; 
while(p->next!=NULL){ 
    q=p->next; 
    p->next=q->next; 
    q->next=head->next; 
    head->next=q; 
} 

p->next=head;//相当于成环 
head=p->next->next;//新head变为原head的next 
p->next->next=NULL;//断掉环 
return head;  

相关文章

  • 翻转单链表

    翻转单链表 方法一:将单链表头插到一个新链表中 浪费空间,不过简单 方法二:使用三个指针遍历单链表,逐个点进行翻转...

  • 单链表反转的递归方法和非递归方法

    链表的节点可以定义为: 测试的输入数据,每次使用root作为方法的入参 使用循环来翻转单链表 思路 翻转单链表,其...

  • 链表的操作和算法相关

    github->demo1、创建(单链表、双链表、循环链表)2、翻转单链表(递归和非递归)3、判断链表是否存在环。...

  • 单链表翻转

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

  • 单链表翻转

  • 翻转单链表

    在有关链表的题目中,最需要注意的地方就是各个结点引用的调整,否则很容易因为混乱的指向导致死循环等情况。 技巧:定义...

  • 单链表翻转

    循环 递归

  • 翻转单链表

  • 翻转单链表

    结果: 完整测试代码:

  • Reverse LinkList

    问题 翻转单链表举例:原始链表: 1->2->3->4就地翻转,翻转后: 4->3->2->1 主要思路 需要两个...

网友评论

    本文标题:翻转单链表

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