您好,登錄后才能下訂單哦!
小編給大家分享一下LeetCode如何解決兩兩交換鏈表中的節點問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
給定 1->2->3->4
, 你應該返回2->1->4->3
.
從鏈表的頭節點 head 開始遞歸。
每次遞歸都負責交換一對節點。由 firstNode 和 secondNode 表示要交換的兩個節點。
下一次遞歸則是傳遞的是下一對需要交換的節點。若鏈表中還有節點,則繼續遞歸。
交換了兩個節點以后,返回 secondNode,因為它是交換后的新頭。
在所有節點交換完成以后,我們返回交換后的頭,實際上是原始鏈表的第二個節點。
class
Solution {
public ListNode swapPairs(ListNode head) {
// If the list has no node or has only one node left.
if ((head ==
null) || (head.next ==
null)) {
return head;
}
// Nodes to be swapped
ListNode firstNode = head;
ListNode secondNode = head.next;
// Swapping
firstNode.next = swapPairs(secondNode.next);
secondNode.next = firstNode;
// Now the head is the second node
return secondNode;
}
}
以上是“LeetCode如何解決兩兩交換鏈表中的節點問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。