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

2021-10-01 17:10:44 字數 465 閱讀 8453

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

你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。

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

解析:交換相鄰的節點,可以採用尾插法。交換總共需要三個節點,需要重新安置在後面的節點a,等待被插入在後面的節點b,節點a的上乙個節點c。

首先為鍊錶增加頭節點p,然後c指向p,a指向1,b指向2.

將節點c指向a節點的下乙個節點,為了防止移動節點a後丟失中間節點。

將節點a指向節點b的下乙個節點,然後將節點b指向節點a。

此時鍊錶變為p->2->1->3->4

之後重新定位三個節點,重複以上操作,完成鍊錶的交換

class

solution

return pre-

>next;}}

;

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...