程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> LeetCode 24 Swap Nodes in Pairs

LeetCode 24 Swap Nodes in Pairs

編輯:關於C++

翻譯

給定一個鏈表,調換每兩個相鄰節點,並返回其頭部。

例如,
給定 1->2->3->4, 你應該返回的鏈表是 2->1->4->3。

你的算法必須使用唯一不變的空間。

你也不能修改列表中的值,只有節點本身是可以改變的。

原文

Give a linked list, swap every two adjacent nodes and return its head.

For example, 
Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. 

You may not modify the values in the list, only nodes itself can be changed.

分析

我們就以題目中給出的1,2,3,4作為示例,將其作為兩部分

1,2 -- 3,4

或者我畫個圖出來更加直觀吧……

這裡寫圖片描述

代碼

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *    int val;
 *    ListNode* next;
 *    ListNode(int x): val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if(head == NULL) return NULL;
        if(head->next == NULL) return head;

        ListNode* temp = head->next;
        head->next = swapPairs(temp->next);
        temp->next = head;

        return temp;
    }
};

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved