关闭

单链表的反转

101人阅读 评论(0) 收藏 举报
分类:
关于单链表的反转是有一定的难度的,我说的自然是用链表来做,当然也可以用顺序表来做,不过如果加上了几个多余的结点那就很有难度了。。所以还是继续回到链表吧具体解析在代码...我们要测试的数据可以这么考虑有尾巴不反转的,地址取到上下界的以及正好是K的整数倍需要全反转的还有就是K=N的,大链表需要反转的,还有就是K=1就都不需要反转。还有就是有多余的结点。
Ptr Reverse(Ptr head,int K)
{
    new=head->next;//该链表是有头结点的,所以new指向第一个有实际意义的点
    old=new->next;//old指向第二个点
    cnt=1;//计数
    while(cnt<K)
    {
        tmp=old->next;//记录第三个点不然后面的数据你就不知道了
        old->next=new;//
        new=old;
        old=tmp;
        cnt++;
    }
    head->next->nexr=old;//相当于把第一个有实际意思的结点给了后面的一个结点
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43137次
    • 积分:4480
    • 等级:
    • 排名:第6970名
    • 原创:416篇
    • 转载:37篇
    • 译文:0篇
    • 评论:7条
    最新评论