LeetCode 交换链表中的节点

class Solution {
    
    
public:
    ListNode* swapNodes(ListNode* head, int k) {
    
    

        int l = 1;
        ListNode* p = head;
        while (p->next != NULL)
        {
    
    
            p = p->next;
            l += 1;
        }

        int v1, v2;
        int index = 1;
        p = head;

        while (p != NULL)
        {
    
    
            if (index == k)
            {
    
    

                v1 = p->val;


            }
            if (index == l - k + 1)
            {
    
    

                v2 = p->val;


            }
            p = p->next;
            index++;
        }



        p = head;
        index = 1;
        while (p != NULL)
        {
    
    
            if (index == k)
            {
    
    

                p->val = v2;
            }
            if (index == l - k + 1)
            {
    
    

                p->val = v1;
            }
            p = p->next;
            index++;
        }

        return head;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_32862515/article/details/113092026