leetcode1721 交換鍊錶中的節點

2021-10-25 17:35:41 字數 929 閱讀 6785

給你鍊錶的頭節點 head 和乙個整數 k 。

交換 鍊錶正數第 k 個節點和倒數第 k 個節點的值後,返回鍊錶的頭節點(鍊錶 從 1 開始索引)。

示例 1:

輸入:head = [1,2,3,4,5], k = 2

輸出:[1,4,3,2,5]

示例 2:

輸入:head = [7,9,6,6,7,8,3,0,9,5], k = 5

輸出:[7,9,6,6,8,7,3,0,9,5]

示例 3:

輸入:head = [1], k = 1

輸出:[1]

示例 4:

輸入:head = [1,2], k = 1

輸出:[2,1]

示例 5:

輸入:head = [1,2,3], k = 2

輸出:[1,2,3]

鍊錶中節點的數目是 n

1 <= k <= n <= 105

0 <= node.val <= 100

思路:兩個指標找到以後交換值即可。

/**

* definition for singly-linked list.

* public class listnode

* listnode(int val)

* listnode(int val, listnode next)

* }*/class solution else

count++;

cur = cur.next;

}// 交換正數第k個節點和倒數第k個節點的值

count = first.val;

first.val = last.val;

last.val = count;

return head;

}}

LeetCode 1721 交換鍊錶中的節點

題意 給你鍊錶的頭節點 head 和乙個整數 k 交換 鍊錶正數第 k 個節點和倒數第 k 個節點的值後,返回鍊錶的頭節點 鍊錶 從 1 開始索引 資料範圍 鍊錶中節點的數目是 n 1 k n 1050 node.val 100解法 先遍歷一次統計一共有多少個結點,然後分別遍歷找到第k個和倒數第k個...

leetcode24,交換鍊錶相鄰的節點

given a linked list,swap every two adjacent nodes and return its head.for example,given1 2 3 4,you should return the list as2 1 4 3.your algorithm sho...

leetcode演算法題 鍊錶 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。package com.leetcode.鍊錶 author markuszhang vm args date create in 2020 2 2 15 23 public cl...