当前位置:   article > 正文

L2-022 重排链表 (25分)_给定一个单链表 l 1 →l 2 → →l n 1 →l n ,请编写程序将链表重新排列为

给定一个单链表 l 1 →l 2 → →l n 1 →l n ,请编写程序将链表重新排列为

又是模板链表题~

给定一个单链表 L​1​​→L​2​​→⋯→L​n−1​​→L​n​​,请编写程序将链表重新排列为 L​n​​→L​1​​→L​n−1​​→L​2​​→⋯。

vector版:(柳婼) r+1和 l-1是变回push时的坐标,当r+1大l-1 1的时候停止。

  1. int l = 0, r = v.size() - 1;
  2. while(1) {
  3. ans.push_back(v[r]);
  4. r--;
  5. if((r + 1) - (l - 1) == 1) break;
  6. ans.push_back(v[l]);
  7. l++;
  8. if((r + 1) - (l - 1) == 1) break;
  9. }

排序版:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct node{
  4. int address,data,next;
  5. int order;
  6. int level;
  7. }lis[100100];
  8. bool cmp(node a,node b){
  9. if(a.level!=b.level) return a.level>b.level;
  10. else return a.order>b.order;
  11. }
  12. vector<node> ans;
  13. int main(){
  14. int begin,n;
  15. cin>>begin>>n;
  16. for(int i=0;i<n;i++){
  17. int x,y,z;
  18. cin>>x>>y>>z;
  19. lis[x].ad
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/226794
推荐阅读
相关标签
  

闽ICP备14008679号