摘要:指針為,我們選擇的兩個結點是和。要注意循環的邊界條件,這兩個結點不能為空。主要思路是先用和兩個新結點去保存和兩個結點。完成交換之后,連接和,并讓前進至此時的結點。
Problem
Given a linked list, swap every two adjacent nodes and return its head.
ExampleGiven 1->2->3->4, you should return the list as 2->1->4->3.
Note指針為p,我們選擇swap的兩個結點是p.next和p.next.next。要注意while循環的邊界條件,這兩個結點不能為空。主要思路是先用next和temp兩個新結點去保存p.next.next.next和p.next兩個結點。完成交換之后,連接temp和next,并讓p前進至此時的temp結點。
Solutionpublic class Solution { public ListNode swapPairs(ListNode head) { if (head == null) return head; ListNode dummy = new ListNode(0); dummy.next = head; ListNode p = dummy; while (p.next != null && p.next.next != null) { ListNode next = p.next.next.next; ListNode temp = p.next; p.next = p.next.next; p.next.next = temp; temp.next = next; p = temp; } return dummy.next; } }
OR
public class Solution { public ListNode swapPairs(ListNode head) { if (head == null || head.next == null) return head; ListNode dummy = new ListNode(0); dummy.next = head; ListNode cur = dummy; while (cur.next != null && cur.next.next != null) { ListNode n1 = cur.next; ListNode n2 = cur.next.next; cur.next = n2; n1.next = n2.next; n2.next = n1; cur = n1; } return dummy.next; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65431.html
摘要:建立結點,指向可能要對進行操作。找到值為和的結點設為,的前結點若和其中之一為,則和其中之一也一定為,返回頭結點即可。正式建立,,以及對應的結點,,然后先分析和是相鄰結點的兩種情況是的前結點,或是的前結點再分析非相鄰結點的一般情況。 Problem Given a linked list and two values v1 and v2. Swap the two nodes in th...
摘要:三指針法復雜度時間空間思路基本的操作鏈表,見注釋。注意使用頭節點方便操作頭節點。翻轉后,開頭節點就成了最后一個節點。 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 ...
摘要:題目要求翻譯過來就是將鏈表中相鄰兩個節點交換順序,并返回最終的頭節點。思路這題的核心解題思路在于如何不占用額外的存儲空間,就改變節點之間的關系。 題目要求 Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should r...
摘要:最后返回頭節點。同時題目要求只能占用常數空間,并且不能改變節點的值,改變的是節點本身的位置。翻轉是以兩個節點為單位的,我們新聲明一個節點表示當前操作到的位置。每次操作結束,將指針后移兩個節點即可。執行操作前要確定操作的兩個節點不為空。 題目詳情 Given a linked list, swap every two adjacent nodes and return its head....
摘要:注意這里,只要走到第位 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...
閱讀 984·2021-11-23 09:51
閱讀 3470·2021-11-22 12:04
閱讀 2716·2021-11-11 16:55
閱讀 2921·2019-08-30 15:55
閱讀 3222·2019-08-29 14:22
閱讀 3351·2019-08-28 18:06
閱讀 1240·2019-08-26 18:36
閱讀 2126·2019-08-26 12:08