反转单链表的前k个结点

来源:互联网 发布:牵机药 知乎 编辑:程序博客网 时间:2024/06/15 06:34

题目及要求

1.1 题目描述

反转单链表的前k个结点

解题思路:

每次将旧链表的头结点指向下一个结点的下一个结点,并把下一个结点掉到最前面。

2 解答

2.1 代码

ListNode *reverse_front_k_node(ListNode *node, int k) {   if (!node) return NULL;assert(k>=1);int cnt=0;while(node){++cnt;node=node->next;}if(k>cnt) k=cnt;ListNode *p = node->next;ListNode *newHead = node;for(int i=1;i<k;++i) {node->next = p->next;p->next = newHead;newHead = p;p = node->next;}return newHead;}


阅读全文
0 0
原创粉丝点击