博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reorder List
阅读量:5261 次
发布时间:2019-06-14

本文共 2256 字,大约阅读时间需要 7 分钟。

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11         ListNode* cut(ListNode *head){12         int count=0;13         ListNode *temp=head;14         while(temp!=NULL)15         {16             ++count;17             temp=temp->next;18         }19         ListNode *lastHead=head;20         for(int i=0;i<(count+1)/2;i++)21         {22             lastHead=lastHead->next;23         }24         ListNode *p,*q;25         if(lastHead!=NULL&&lastHead->next!=NULL&&lastHead->next->next!=NULL)26         {27             p=lastHead;28             q=lastHead->next;29             lastHead->next=NULL;30             ListNode *tempcut=q->next;31             while(tempcut!=NULL)32             {                33                 q->next=p;34                 p=q;35                 q=tempcut;36                 tempcut=tempcut->next;37             }38             q->next=p;39             ListNode *last=q;40             return last;41         }42         else if(lastHead->next==NULL)43         {44             lastHead->next=NULL;//应该把尾节点的next赋为空45             return lastHead;46         }47         else if(lastHead->next->next==NULL)48         {49             p=lastHead;50             lastHead=lastHead->next;51             lastHead->next=p;52             p->next=NULL;//应该把尾节点的next赋为空53             return lastHead;54         }55     }56     void reorderList(ListNode *head) {57        if(head==NULL||head->next==NULL||head->next->next==NULL)58            return;59        else60        {61            ListNode *last=cut(head);62            ListNode *p,*q;63            p=head->next;64            q=last->next;65                while(p!=NULL&&q!=NULL)66                {67                    head->next=last;68                    last->next=p;69                    head=p;70                    last=q;71                    p=p->next;72                    q=q->next;73                }74                head->next=last;75                last->next=p;76                p->next=NULL;//应该把尾节点的next赋为空77        }78     }79 };
View Code

由于没给尾节点赋空值导致各种错误。

转载于:https://www.cnblogs.com/YaqinLiu/p/3474718.html

你可能感兴趣的文章
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
idea搭建tocmat
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>