C++
Java
Python
Python3
C
C#
JavaScript
Ruby
Swift
Go
Scala
Kotlin
Rust
PHP
TypeScript
Racket
Erlang
Elixir
Dart
monokai
ambiance
chaos
chrome
cloud9_day
cloud9_night
cloud9_night_low_color
clouds
clouds_midnight
cobalt
crimson_editor
dawn
dracula
dreamweaver
eclipse
github
github_dark
gob
gruvbox
gruvbox_dark_hard
gruvbox_light_hard
idle_fingers
iplastic
katzenmilch
kr_theme
kuroir
merbivore
merbivore_soft
mono_industrial
nord_dark
one_dark
pastel_on_dark
solarized_dark
solarized_light
sqlserver
terminal
textmate
tomorrow
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
xcode
上次编辑到这里,代码来自缓存 点击恢复默认模板
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* swapNodes(ListNode* head, int k) {
}
};
运行代码
提交
python3 解法, 执行用时: 696 ms, 内存消耗: 48.2 MB, 提交时间: 2022-11-28 13:45:38
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapNodes(self, head: ListNode, k: int) -> ListNode:
p,q,n=head,head,head
i=1
while n:
if i<k:
p=p.next#正数第k个
if i>k:
q=q.next#倒数第k个
n=n.next
i+=1
p.val,q.val=q.val,p.val
return head
java 解法, 执行用时: 2 ms, 内存消耗: 56.1 MB, 提交时间: 2022-11-28 13:43:50
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode swapNodes(ListNode head, int k) {
// 模拟指针,用来遍历链表
ListNode cur = head;
// 用来定位正数第k个节点
ListNode first = head;
// 用来定位倒数第k个节点
ListNode last = head;
// 用于节点的计数,和节点值的交换
int count = 1;
while (cur.next != null) {
// 找到正数第k个节点
if (count < k) {
first = first.next;
// 找到倒数第k个节点
} else {
last = last.next;
}
count++;
cur = cur.next;
}
// 交换正数第k个节点和倒数第k个节点的值
count = first.val;
first.val = last.val;
last.val = count;
return head;
}
}
python3 解法, 执行用时: 672 ms, 内存消耗: 48.3 MB, 提交时间: 2022-11-28 13:43:32
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapNodes(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
slow = fast = head
for _ in range(k-1):
fast = fast.next
pre = fast
while fast.next:
slow = slow.next
fast = fast.next
pre.val, slow.val = slow.val, pre.val
return head
python3 解法, 执行用时: 728 ms, 内存消耗: 48.3 MB, 提交时间: 2022-11-28 13:42:59
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapNodes(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
ref = list()
while head:
ref.append(head)
head = head.next
ref[k-1].val, ref[-k].val = ref[-k].val, ref[k-1].val
return ref[0]