高级农民
- 积分
- 1027
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-6-13
- 最后登录
- 1970-1-1
|
根据题意描述给了解答.有问题的话欢迎指正,或者给个赞.
- #include <iostream>
- class LinkedNode
- {
- public:
- int val;
- LinkedNode* next;
- LinkedNode(int a)
- {
- next = NULL;
- val = a;
- }
- };
- void solution(LinkedNode* head, int N)
- {
- vector<LinkedNode*>array;
- LinkedNode* h = head;
-
- array.push_back(h);
- for (int i=0; i<N; i++)
- {
- if (i%int(sqrt(N)+1)==0)
- array.push_back(h);
- h = h->next;
- }
- array.push_back(NULL);
-
- for (int i=array.size()-2; i>=0; i--)
- {
- LinkedNode* p =array[i];
- vector<int>temp;
- while (p!=array[i+1])
- {
- temp.push_back(p->val);
- p = p->next;
- }
- for (int j=temp.size()-1; j>=0; j--)
- cout<<temp[j]<<" ";
- }
- }
- int main()
- {
- LinkedNode* head = new LinkedNode(1);
- LinkedNode* h = head;
- h->next = new LinkedNode(2);
- h = h->next;
- h->next = new LinkedNode(3);
- h = h->next;
- h->next = new LinkedNode(4);
- h = h->next;
- h->next = new LinkedNode(5);
- h = h->next;
- h->next = new LinkedNode(6);
- h = h->next;
- h->next = new LinkedNode(7);
- h = h->next;
- h->next = new LinkedNode(8);
- h = h->next;
-
- solution(head,8);
- }
复制代码 |
|