反转链表 II
时间限制: 1S类别: DS:数组与链表->链表–较难

问题描述 :

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。

示例 1:

输入:head = [1,2,3,4,5], left = 2, right = 4

输出:[1,4,3,2,5]

示例 2:

输入:head = [5], left = 1, right = 1

输出:[5]

提示:

链表中节点数目为 n

1 <= n <= 500

-500 <= Node.val <= 500

1 <= left <= right <= n

输入说明 :

输入链表长度n,然后输入n个整数,以空格分隔,然后输入两个整数left 和right

输出说明 :

输出格式见范例。

输入范例 :

5
1 2 3 4 5
2 4
输出范例 :

head–>1–>4–>3–>2–>5–>tail

#include<iostream>
#include<vector>
using namespace std;
int len = 0;
struct ListNode
{int val;ListNode* next;ListNode() : val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}ListNode(int x, ListNode* next) : val(x), next(next) {}
};
int search(ListNode* head, int n, int weizhi);//输入寻找的是第几个临界值
ListNode* createByTail()
{ListNode* head;ListNode* p1, * p2 = NULL;int n = 0, num;cin >> len;head = NULL;while (n<len && cin >> num){p1 = new ListNode(num);n = n + 1;if (n == 1)head = p1;elsep2->next = p1;p2 = p1;}return head;
}
ListNode* createByTail2(ListNode *p,int len)
{ListNode* head;ListNode* p1, * p2 = NULL;ListNode* head2 = p;int n = 0, num;int len2 = len;head = NULL;while (n<len){int len1 = len2-1;ListNode* p3 = p;while (len1--){p3 = p3->next;}num = p3->val;p1 = new ListNode(num);n = n + 1;if (n == 1)head = p1;elsep2->next = p1;p2 = p1;len2--;}return head;
}
void  displayLink(ListNode* head)
{ListNode* p;p = head->next;cout << "head-->";while (p != NULL){cout << p->val << "-->";p = p->next;}cout << "tail\n";
}
int search(ListNode* head, int s[])//输入寻找的是第几个临界值
{ListNode* p = head->next; int num = 0, n = 1;int length = len - 2;while (length--){n++;if ((p->next->val > p->val && p->next->val > p->next->next->val) || (p->next->val < p->val && p->next->val < p->next->next->val)){s[n] = 1;num++;}p = p->next;}if (num < 2)return -9876;return 1;
}
int main()
{ListNode* head1 = new ListNode();head1->next = createByTail();ListNode* p1 = head1;int x = 0, y = 0;cin >> x >> y;ListNode* head2 = new ListNode();int len1 = x-1;while(len1--){p1=p1->next;}len1 = y - x+1 ;head2 ->next= createByTail2(p1->next,len1);ListNode* p2 = head2;x = x - 1;while (len1--){p2 = p2->next;}p1 = head1;while (y--){p1 = p1->next;}p2->next = p1->next;p1 = head1; while (x--){p1 = p1->next;}p1->next = head2->next;displayLink(head1);return 0;
}

dhu 1.3 反转链表 II相关推荐

  1. LeetCode 中等难度 92. 反转链表 II解题思路

    92. 反转链表 II 题目:中等难度 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4-& ...

  2. 92. 反转链表 II golang

    92. 反转链表 II 注意最后对于链表反转的操作,应该熟记 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2-&g ...

  3. 92. 反转链表 II【穿针引线、头插法(tmp.next、pre.next 太妙了,绝绝子~)】

    92. 反转链表 II 穿针引线法: 如果[需要从头开始反转],则需要加[虚拟头结点]. class Solution { // java 穿针引线public ListNode reverseBet ...

  4. leetcode-92 反转链表II

    题目描述如下: 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NUL ...

  5. LeetCode 92 ——反转链表 II

    1. 题目 2. 解答 我们需要先找到第 m 个结点及其上一个结点,然后将从 m 到 n 的结点进行反转,最后依次将 m 到 n 反转后的结点和 n 之后的结点放入原链表中即可. 从前往后依次遍历 m ...

  6. leetcode算法题--反转链表 II★

    原题链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/ 1.头插法 ListNode* reverseBetween(ListNod ...

  7. 27. Leetcode 92. 反转链表 II (链表-反转链表)

    给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 .示例 1 ...

  8. Leetcode 92 反转链表 II (每日一题 20210726)

    给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 .示例 1 ...

  9. LeetCode 92. 反转链表 II(双指针)

    1. 题目 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例:输入: 1->2->3->4->5->NULL, ...

最新文章

  1. 酷派、华为不能打印log解决办法
  2. 浅谈分布式消息技术 Kafka--大数据技术栈05
  3. KVM虚拟化实践(一)
  4. python 时间减去一天_Python是个什么鬼?为什么985学生都在学它?!
  5. [云炬创业管理笔记]第二章成为创业者讨论4
  6. 登錄CentOS出現-bash-4.1#
  7. springboot中接口实例化_AngularJs中控制器的定义,实例化,作用域范围
  8. 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。
  9. Excel2003怎样拆分单元格
  10. 【UML】部署图Deployment diagram(实现图)(转)
  11. 计算机工程 学什么,依然很火的计算机工程专业学什么?
  12. 解决办法:对lzma_stream_decoder/lzma_code/lzma_end未定义的引用
  13. 如何更新计算机的flash player,如何在win7电脑中Adobe Flash Player自动更新?
  14. 串口通信(232,485,422)以及常见问题
  15. 如何通过Spring Boot实施Alexa技能
  16. QtableView点击滑动设计
  17. Salt Returners-作业结果数据返回器的使用与定制开发方法
  18. Linux 查看磁盘空间命令
  19. 11.03 CSS的基础应用
  20. realsense中IMU的简单使用与学习

热门文章

  1. 【转】我的技术学习方法 — Anytao
  2. 从财报看康佳、创维、TCL、海信能否守住家电市场的“江湖地位”?
  3. AVS+标准应用现状
  4. 如何有效防治企业污染
  5. 褚时健:我老褚不是个坏人
  6. 第一篇博客——C语言实现简单的学生成绩管理系统
  7. 婴儿围栏ASTM F406亚马逊CPC美国CPSIA认证玩具CPC认证儿童产品CPC认证
  8. 管他什么利弊权衡,小孩子才做选择题,成年人全部都要
  9. 一嗨租车宣布获老虎基金等1.34亿美元投资
  10. META-INF/MANIFEST.MF 文件