List* ReverseList2(List* head){ if(NULL==head|| NULL==head->next) return head; //少于两个节点没有反转的必要。 ActList* p,* q,* r; // 通过三个指针 p = head; // 先保存head q = head->next;// 保存第二个
// 这里要先处理最后一个 head->next = NULL; //旧的头指针是新的尾指针,next需要指向NULL while(q){ r = q->next; //先保留下一个step要处理的指针 q->next = p; //然后p q交替工作进行反向 p = q; // p指针移动:也就是将地址重新赋值 q = r; // q指针移动 } head=p; // 最后q必然指向NULL,所以返回了p作为新的头指针 return head; }

 

相关文章:

  • 2021-06-28
  • 2021-06-25
  • 2021-06-14
  • 2021-08-10
  • 2022-03-08
  • 2021-12-30
  • 2021-11-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-10
  • 2022-12-23
  • 2021-09-04
  • 2021-04-01
  • 2021-08-06
相关资源
相似解决方案