地址:

5652. 交换链表中的节点

状态:AC

代码:

  1. /**
  2. * Definition for singly-linked list.
  3. * struct ListNode {
  4. * int val;
  5. * ListNode *next;
  6. * ListNode() : val(0), next(nullptr) {}
  7. * ListNode(int x) : val(x), next(nullptr) {}
  8. * ListNode(int x, ListNode *next) : val(x), next(next) {}
  9. * };
  10. */
  11. class Solution {
  12. public:
  13. ListNode* swapNodes(ListNode* head, int k) {
  14. int i = 1;
  15. ListNode* pre = head;
  16. ListNode* back = head;
  17. while(i++<k){
  18. pre = pre->next;
  19. }
  20. ListNode* tmp = pre;
  21. while(tmp->next){
  22. tmp = tmp->next;
  23. back = back->next;
  24. }
  25. swap(pre->val,back->val);
  26. return head;
  27. }
  28. };