給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例:給定 1->2->3->4, 你應該返回 2->1->4->3.
方法一(遞迴):
**:
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
listnode *firstnode = head;
listnode *secondnode = head->next;
secondnode->next = firstnode;
// now the head is the second node
return secondnode;
}};
方法二:(迭代)
把整個陣列看做是兩兩一組,然後對每個小組用兩個節點a和b來指向,a 指的是交換節點中的前面的節點,b 指的是要交換節點中的後面的節點。在完成它們的交換,我們還得用 prevnode 記錄 a 的前驅節點,用來指向下一組交換完的頭結點。
演算法:**:
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
listnode *dumpy=new listnode(0);
dumpy->next=head;
listnode *pre=dumpy;
while(head&&head->next)
return dumpy->next;
}};
兩兩交換鍊錶中的節點 leetcode
leetcode位址 兩兩交換鍊錶中的節點 使用兩種方法,迭代和遞迴 這是使用的節點類 public class listnode listnode int val listnode int val,listnode next 判斷是否滿足條件,這裡的條件設定為鍊錶的個數是否為偶數,判斷方法為利用當...
Leetcode 兩兩交換鍊錶中的節點
兩兩交換鍊錶中的節點 題意 給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。給定1 2 3 4,你應該返回2 1 4 3.題解 這個題建議自己畫個圖。主要步驟大概就以下三步。能想出來,這個題基本就解決了。1 使新鍊錶節點的ans...
leetcode演算法題 鍊錶 兩兩交換鍊錶中的節點
給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。package com.leetcode.鍊錶 author markuszhang vm args date create in 2020 2 2 15 23 public cl...