2.2.13—单链表—Reorder List
来源:互联网 发布:javaweb项目 知乎 编辑:程序博客网 时间:2024/06/08 14:32
描述
Given a singly linked listL0 L1 ...Ln;reorder it to:L0 Ln L1 Ln-1...
You must do this in-place without altering the nodes values.
For example, Given [1,2,3,4], reorder it to [1,4,2,3].
Given a singly linked listL0 L1 ...Ln;reorder it to:L0 Ln L1 Ln-1...
You must do this in-place without altering the nodes values.
For example, Given [1,2,3,4], reorder it to [1,4,2,3].
#include<iostream>using namespace std;struct node{int data;node *next;};class mylist{node *head;public:mylist(){head = new node();head->next = NULL;}void CreateList(int a[], int n);void Display();friend void ReorderList(mylist &list);~mylist();};void mylist::CreateList(int a[], int n){node *p = head;node *temp = head;for (int i = 0; i < n; i++){node *q = new node();q->data = a[i];p->next = q;p = q;}p->next = NULL;}void mylist::Display(){node *p = head->next;while (p){cout << p->data << " ";p = p->next;}cout << endl;}void ReorderList(mylist &list){int length = 0;node *p = list.head->next;while (p){length++;p = p->next;}//===int lasthalf = length / 2;int firsthalf = length - lasthalf;p = list.head->next;node *firsthalfend = list.head;node *lasthalfbegin = NULL;for (int i = 1; i <= firsthalf; i++){firsthalfend = firsthalfend->next;}lasthalfbegin = firsthalfend->next;firsthalfend->next = NULL;//===list.head->next = NULL;while (lasthalfbegin){node *temp = lasthalfbegin->next;lasthalfbegin->next = list.head->next;list.head->next = lasthalfbegin;lasthalfbegin = temp;}lasthalfbegin = list.head->next;list.head->next = p;//===while (p&&lasthalfbegin){node *temp1 = p;node *temp2 = lasthalfbegin;p = p->next;lasthalfbegin = lasthalfbegin->next;temp1->next = temp2;temp2->next = p;}}mylist::~mylist(){node *p = head;while (p){node *temp = p->next;delete p;p = temp;}}int main(){//===const int n = 4;int a[n] = { 1, 2, 3, 4};mylist list;list.CreateList(a, n);list.Display();cout << endl;//===ReorderList(list);list.Display();cout << endl;}
阅读全文
0 0
- 2.2.13—单链表—Reorder List
- 2.2.13 Reorder List
- LeetCode—Reorder List
- LeetCode143—Reorder List
- LeetCode——Reorder List
- Algorithms—143.Reorder List
- leetcode笔记—Reorder List
- leetcode 143 —— Reorder List
- LeetCode题解——Reorder List
- 算法系列——Reorder List
- LeetCode—Reorder List 解题报告
- 【leetcode】【单链表】【143】Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- 今天开启博客
- Js+ajax实现智能百度搜索框
- 奥威Power-BI服装行业BI数据可视化分析--动销商品分析
- LaunchMode
- 前端技术集——前端干货聚集地
- 2.2.13—单链表—Reorder List
- 获取spring的ApplicationContext几种方式
- 安卓自定义控件撞屏幕边缘按入射角反弹
- php中引用&的真正理解-变量引用、函数引用、对象引用
- FTP协议分析
- 数据结构-3 二叉树的遍历
- UE4_TimeLine
- 1、t_sne详解
- ListView一键置顶功能实现