摘要:最后返回頭節(jié)點(diǎn)。同時(shí)題目要求只能占用常數(shù)空間,并且不能改變節(jié)點(diǎn)的值,改變的是節(jié)點(diǎn)本身的位置。翻轉(zhuǎn)是以兩個(gè)節(jié)點(diǎn)為單位的,我們新聲明一個(gè)節(jié)點(diǎn)表示當(dāng)前操作到的位置。每次操作結(jié)束,將指針后移兩個(gè)節(jié)點(diǎn)即可。執(zhí)行操作前要確定操作的兩個(gè)節(jié)點(diǎn)不為空。
題目詳情
Given a linked list, swap every two adjacent nodes and return its head.想法題目要求輸入一個(gè)鏈表,我們將相鄰的兩個(gè)節(jié)點(diǎn)的順序翻轉(zhuǎn)。最后返回頭節(jié)點(diǎn)。同時(shí)題目要求只能占用常數(shù)空間,并且不能改變節(jié)點(diǎn)的值,改變的是節(jié)點(diǎn)本身的位置。
例如,
輸入 1->2->3->4, 你應(yīng)該返回的鏈表:2->1->4->3.
要求返回頭節(jié)點(diǎn),因此我們需要新建一個(gè)節(jié)點(diǎn)(dummy)指向頭節(jié)點(diǎn),方便最后返回頭節(jié)點(diǎn)。
翻轉(zhuǎn)是以兩個(gè)節(jié)點(diǎn)為單位的,我們新聲明一個(gè)節(jié)點(diǎn)current表示當(dāng)前操作到的位置。每次操作結(jié)束,將current指針后移兩個(gè)節(jié)點(diǎn)即可。
執(zhí)行操作前要確定操作的兩個(gè)節(jié)點(diǎn)不為空。
簡(jiǎn)單畫了一下翻轉(zhuǎn)的過程
解法public ListNode swapPairs(ListNode head) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode current = dummy; while(current.next != null && current.next.next != null){ ListNode first = current.next; ListNode second = current.next.next; first.next = second.next; second.next = first; current.next = second; current = current.next.next; } return dummy.next; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68792.html
摘要:題目要求翻譯過來就是將鏈表中相鄰兩個(gè)節(jié)點(diǎn)交換順序,并返回最終的頭節(jié)點(diǎn)。思路這題的核心解題思路在于如何不占用額外的存儲(chǔ)空間,就改變節(jié)點(diǎn)之間的關(guān)系。 題目要求 Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should r...
摘要:三指針法復(fù)雜度時(shí)間空間思路基本的操作鏈表,見注釋。注意使用頭節(jié)點(diǎn)方便操作頭節(jié)點(diǎn)。翻轉(zhuǎn)后,開頭節(jié)點(diǎn)就成了最后一個(gè)節(jié)點(diǎn)。 Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should ...
摘要:前言從開始寫相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒有按順序?qū)懍F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個(gè)索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒有按順序?qū)憽F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個(gè)索引嘻嘻。 順序整理 1~50 1...
摘要:指針為,我們選擇的兩個(gè)結(jié)點(diǎn)是和。要注意循環(huán)的邊界條件,這兩個(gè)結(jié)點(diǎn)不能為空。主要思路是先用和兩個(gè)新結(jié)點(diǎn)去保存和兩個(gè)結(jié)點(diǎn)。完成交換之后,連接和,并讓前進(jìn)至此時(shí)的結(jié)點(diǎn)。 Problem Given a linked list, swap every two adjacent nodes and return its head. Example Given 1->2->3->4, you sh...
摘要:注意這里,只要走到第位 Swap Nodes in Pairs For example,Given 1->2->3->4, you should return the list as 2->1->4->3. Solution public class Solution { public ListNode swapPairs(ListNode head) { if...
閱讀 959·2023-04-25 23:50
閱讀 1971·2021-11-19 09:40
閱讀 602·2019-08-30 13:50
閱讀 2732·2019-08-29 17:11
閱讀 1047·2019-08-29 16:37
閱讀 2990·2019-08-29 12:54
閱讀 2798·2019-08-28 18:17
閱讀 2643·2019-08-26 16:55