LeetCode(24) 兩兩交換鍊錶中的節點

2022-05-07 09:00:11 字數 562 閱讀 2960

medium!

題目描述:

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。

示例:

給定1->2->3->4, 你應該返回2->1->4->3.
說明:

解題思路:

這道題不算難,是基本的鍊錶操作題,我們可以分別用遞迴和迭代來實現。對於迭代實現,還是需要建立dummy節點,注意在連線節點的時候,最好畫個圖,以免把自己搞暈了。

c++解法一:

1

class

solution

13return dummy->next;14}

15 };

遞迴的寫法就更簡潔了,實際上利用了回溯的思想,遞迴遍歷到鍊錶末尾,然後先交換末尾兩個,然後依次往前交換。

c++解法二:

1

class

solution

10 };

LeetCode 24兩兩交換鍊錶的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 給定 1 2 3 4,你應該返回 2 1 4 3.class solution listnode next head.next head.next next.next 指向下...

leetcode24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.說明 你的演算法只能使用常數的額外空間。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。注意while裡tmp1和tmp2已經交換了,所以node tmp1 definit...

leetcode 24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.複製 說明 listnode definition for singly linked list.type listnode struct func head listnode list...