本文主要是介绍C语言 | Leetcode C语言题解之第92题反转链表II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
struct ListNode *reverseBetween(struct ListNode *head, int left, int right) {// 因为头节点有可能发生变化,使用虚拟头节点可以避免复杂的分类讨论struct ListNode *dummyNode = malloc(sizeof(struct ListNode));dummyNode->val = -1;dummyNode->next = head;struct ListNode *pre = dummyNode;for (int i = 0; i < left - 1; i++) {pre = pre->next;}struct ListNode *cur = pre->next;struct ListNode *next;for (int i = 0; i < right - left; i++) {next = cur->next;cur->next = next->next;next->next = pre->next;pre->next = next;}return dummyNode->next;
}
这篇关于C语言 | Leetcode C语言题解之第92题反转链表II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!