本文涉及的leetcode对应的题
leetcode第876题链表的中间节点
leetcode第160题相交链表
leetcode第237题删除链表当前节点
leetcode剑指offer18题删除链表中的某个节点
leetcode第19题删除链表的倒数第N个节点
leetcode第141题环形链表 I
leetcode第142题环形链表 II
leetcode第1290题二进制链表转整数
leetcode第206题反转一个单链表
leetcode第24题两两交换链表中的节点
leetcode第21题合并两个有序链表
leetcode第25题K个一组翻转链表

class ListNode {int val;ListNode next;ListNode(int x) { val = x; }@Overridepublic String toString() {return "ListNode [val=" + val + ", next=" + next + "]";}
}

1.给定数组构建链表

public static void main(String[] args) {int[] nums = new int[] {1,2,3,4,5};ListNode node = new ListNode(-1);ListNode temp = node;for (int i = 0; i < nums.length; i++) {temp.next = new ListNode(nums[i]);temp = temp.next;}System.out.println(node.next);
}
ListNode [val=1, next=ListNode [val=2, next=ListNode [val=3, next=ListNode [val=4, next=ListNode [val=5, next=null]]]]]

2.链表的中间节点

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.
示例 2:
输入:[1,2,3,4,5,6]
输出:此列表中的结点 4 (序列化形式:[4,5,6])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。
提示:
给定链表的结点数介于 1 和 100 之间。

1.1.借用外部空间

在这里插入图片描述

解题要素:知道中间节点的位置
遍历链表,将遍历后的链表存储到list集合中,然后获取list的中间元素。

public static ListNode middleNode(ListNode head) {if(head ==null) {return null;}List<ListNode> list = new ArrayList<>();int index = 0;while (head != null) {list.add(head);index ++;head = head.next;}return list.get(index/2);
}

在这里插入图片描述

当然也可以不用list,可以定义一个指针,第一次遍历求长度,然后在遍历一半的长度。

public static ListNode middleNode2(ListNode head) {int index = 0;ListNode temp = head;while (temp != null) {index ++;temp = temp.next;}int flag = 0;temp = head;while (flag < index / 2) {flag ++;temp = temp.next;}return temp;
}

在这里插入图片描述

1.2.双指针:快慢双指针

设置两个指针,慢指针一次走一步,快指针一次走两步,当快指针走到末尾了(null),则慢指针刚好走到中间位置。

public ListNode middleNode(ListNode head) {ListNode slow = head, fast = head;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}return slow;
}

在这里插入图片描述

3.相交链表

编写一个程序,找到两个单链表相交的起始节点。
在这里插入图片描述
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3
输出:Reference of the node with value = 8
输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。
在这里插入图片描述
输入:intersectVal = 2, listA = [0,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1
输出:Reference of the node with value = 2
输入解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。在 A 中,相交节点前有 3 个节点;在 B 中,相交节点前有 1 个节点。
在这里插入图片描述
输入:intersectVal = 0, listA = [2,6,4], listB = [1,5], skipA = 3, skipB = 2
输出:null
输入解释:从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。由于这两个链表不相交,所以 intersectVal 必须为 0,而 skipA 和 skipB 可以是任意值。
解释:这两个链表不相交,因此返回 null。
注意:
如果两个链表没有交点,返回 null.
在返回结果后,两个链表仍须保持原有的结构。
可假定整个链表结构中没有循环。
程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。

3.1.暴力双循环

通过示例1和示例2我们不难得出,此题不能根据值是否相同来判断。因此我们需要判断的是地址,即判断class是不是同一个,而不能判断class的val属性。第一个循环链表A,然后逐个和链表B中的各节点对比地址。
在这里插入图片描述

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode tempA = headA;ListNode tempB = headB;while (tempA != null) {while (tempB != null) {if(tempA == tempB) {return tempA;}tempB = tempB.next;}tempA = tempA.next;//重新初始化tempBtempB = headB;}return null;}

在这里插入图片描述

3.2.Hash优化循环

针对暴力双循环,我们可以使用hashSet或者hashMap来优化掉一层循环

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {Set<ListNode> hashHeadA = new HashSet<>();while (headA != null){hashHeadA.add(headA);headA = headA.next;}while (headB != null){if (hashHeadA.contains(headB)){return headB;}headB = headB.next;}return null;}
}

在这里插入图片描述

3.3.双指针:链表拼接

起点不同,构造相同长度让它们相遇,这样A走的路程就是A表+B表,B走的路程就是B表+A表,当AB和BA相遇的时候,就是相交节点。
在这里插入图片描述

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA == null || headB == null) return null;ListNode tempA = headA,tempB = headB;while (tempA != tempB) {tempA = tempA == null ? headB : tempA.next;tempB = tempB == null ? headA : tempB.next;}return tempA;}

在这里插入图片描述

4.删除链表当前节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点 。
现有一个链表 – head = [4,5,1,9],它可以表示为:

示例 1:
输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入:head = [4,5,1,9], node = 1
输出:[4,5,9]
解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
提示:
链表至少包含两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。

4.1.偷梁换柱

仔细看完题后,感觉很纳闷,入参不应该是两个么?一个是链表,一个是需要删除的节点,但是实际要求我们实现的是,删除传入的节点,也就是说,我们压根不知道链表是什么样子,也就是node节点之前的节点是啥。
可能我们理解的是在:A->B->C->D链表中,删除节点C,因此我们常规删除就是将A指向C,就能删除B了,但是此题给的是B->C->D,此时需要我们把B删了,我们发现A找不到了,这里可以用C覆盖B的方式求解。既然找不到A,我们就把C完全覆盖给B,这样不管A在哪里,都会指向C。此时B就被删除了。

public void deleteNode(ListNode node) {node.val = node.next.val;node.next = node.next.next;
}

5.删除链表中的某个节点

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
注意:此题对比原题有改动
示例 1:
输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], val = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
说明:
题目保证链表中节点的值互不相同
若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

5.1.比较值删除

和上题不同的是,这里我们是用值来判断删除,也就是根据值更改指向。

	public ListNode deleteNode(ListNode head, int val) {ListNode dummy = new ListNode(-1);dummy.next = head;ListNode temp = dummy;while(temp.next != null){if(temp.next.val == val){temp.next = temp.next.next;return dummy.next;}temp = temp.next;}return dummy.next;}

6.删除链表中的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?

6.1.两遍循环

第一次遍历找出总长度,第二次遍历找出需要删除的节点。
考虑到某些特殊情况,如链表为空,或者只有一个节点。我们可以做一个哑结点。

	 public ListNode removeNthFromEnd(ListNode head, int n) {//哑结点用来简化某些极端情况,例如列表中只含有一个结点,或需要删除列表的头部ListNode dummy = new ListNode(0);dummy.next = head;int length  = 0;ListNode temp = head;while (temp != null) {length++;temp = temp.next;}length = length - n;temp = dummy;while (length > 0) {length--;temp = temp.next;}temp.next = temp.next.next;return dummy.next;}

在这里插入图片描述

6.1.双指针:先后指针

我们让快指针先走n步,然后快慢指针一次走一步,当快指针走到末尾时,慢指针就走到了需要删除的节点处。

 	public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode(0);dummy.next = head;ListNode fast = dummy;ListNode slow = dummy;for (int i = 0; i <= n; i++) {fast = fast.next;}while (fast != null) {fast = fast.next;slow = slow.next;}slow.next = slow.next.next;return dummy.next;}

在这里插入图片描述

7.环形链表 I

给定一个链表,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
如果链表中存在环,则返回 true 。 否则,返回 false 。
进阶:
你能用 O(1)(即,常量)内存解决此问题吗?
在这里插入图片描述

7.1.hash优化暴力双循环

采用暴力的话,我们的复杂度是O(n*n),我们可以循环链表节点之后,将这个节点存储到hash中,如果,我们遍历到某个元素时,在hash中,找到了这个节点,说明这个链表是环形链表,因为我们回到了我们之前遍历的节点。
注意:这里使用的是内存地址,而不是具体的值。

 	public boolean hasCycle(ListNode head) {Set<ListNode> set = new HashSet<>();while (head != null) {if(set.contains(head)) {return true;} else  {set.add(head);}head = head.next;}return false;}

在这里插入图片描述

7.2.双指针:快慢指针(Floyd )

Floyd 判圈算法(又称龟兔赛跑算法),假想「乌龟」和「兔子」在链表上移动,「兔子」跑得快,「乌龟」跑得慢。当「乌龟」和「兔子」从链表上的同一个节点开始移动时,如果该链表中没有环,那么「兔子」将一直处于「乌龟」的前方;如果该链表中有环,那么「兔子」会先于「乌龟」进入环,并且一直在环内移动。等到「乌龟」进入环时,由于「兔子」的速度快,它一定会在某个时刻与乌龟相遇
定义两个指针,一快一满。慢指针每次只移动一步,而快指针每次移动两步。初始时,慢指针在位置 head,而快指针在位置 head.next。这样一来,如果在移动的过程中,快指针反过来追上慢指针,就说明该链表为环形链表。否则快指针将到达链表尾部,该链表不为环形链表。

	public boolean hasCycle(ListNode head) {if(head == null || head.next == null) {return false;}ListNode slow = head.next;ListNode fast = head.next.next;while (slow != fast) {if(fast == null || fast.next == null ) {return false;}slow = slow.next;fast = fast.next.next;}return true;}

在这里插入图片描述

8.环形链表 II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。
说明:不允许修改给定的链表。
进阶:
你是否可以使用 O(1) 空间解决此题?
在这里插入图片描述

8.1.hash优化暴力双循环

与环形链表I类似,如果我们用一个 Set 保存已经访问过的节点,我们可以遍历整个列表并返回第一个出现重复的节点。不同的是,我们这里返回的是第一个环节点,而不是true/false。

 	public ListNode detectCycle(ListNode head) {Set<ListNode> set = new HashSet<>();while (head != null) {if (set.contains(head)) {return head;}else {set.add(head);}head = head.next;}return null;}

在这里插入图片描述

7.2.双指针:快慢指针(Floyd )

基于环形链表 I,我们先判定是不是环形链表,在环形链表的基础上,我们在去寻找环形入口在哪儿。
在这里插入图片描述
如上图所示:我们假设快指针只饶了一个环,快指针和慢指针就能相遇。
那么快指针走的长度必然是慢指针的两倍
如上图所示:
2(a + b) = a + b + c + b
a = c
最终我们得出a=c,因此我们只需要快慢指针,此时一步一步的走,走到最后一步就是环状入口。
假设快指针已经走了几个环,同理
a + n ( b + c ) + b = a + ( n + 1 ) b + nc
a = c + ( n − 1 )( b + c )
从相遇点到入环点的距离加上 n-1圈的环长,恰好等于从链表头部到入环点的距离。
因此还是快慢指针一步一步的往下走,慢指针走到头的位置就是环入口。

	public ListNode detectCycle(ListNode head) {ListNode fast = head;ListNode slow = head;while (true) {if (fast == null || fast.next == null) {return null;}fast = fast.next.next;slow = slow.next;if(fast == slow) {break;}}slow = head;while (fast != slow) {fast = fast.next;slow = slow.next;}return slow;}

在这里插入图片描述

9.二进制链表转整数

给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。
请你返回该链表所表示数字的 十进制值 。
示例 1:
在这里插入图片描述
输入:head = [1,0,1]
输出:5
解释:二进制数 (101) 转化为十进制数 (5)
示例 2:
输入:head = [0]
输出:0
示例 3:
输入:head = [1]
输出:1
示例 4:
输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]
输出:18880
示例 5:
输入:head = [0,0]
输出:0
提示:
链表不为空。
链表的结点总数不超过 30。
每个结点的值不是 0 就是 1。

9.1.API转换Integer.valueOf

遍历此链表,然后拼接一个字符串,然后将此字符串用API转成二进制。

 	public int getDecimalValue(ListNode head) {StringBuffer buff = new StringBuffer();while (head != null) {buff.append(head.val);head= head.next;}return Integer.valueOf(buff.toString(), 2);}

在这里插入图片描述

9.2.位移运算

左移代表乘,左移一位代表乘2,左移两位代表乘4,依次递增。例如12<<1=24;12<<2=48
右移代表除,右移一位代表除2,右移两位代表除4,依次递增。例如12>>1=6;12>>2=3
先来看看二进制怎么转10进制
1011 = 12^3 + 02^2 + 12^1 +12^0,我们对这个表达式进行公因式的提炼,如下红花圈部分刚好就是我们的二进制数1011。

不难发现如下规律,每次计算都是 2 * a + b,其中b为对应权位上的二进制数,
因此得出公式: sum(n) = 2 * sum(n-1) + b
在这里插入图片描述

    public int getDecimalValue(ListNode head) {int sum = 0;while (head != null) {//乘2相当于左移1位,除2相当于右移1位//sum = sum * 2 + head.val;sum <<= 1;sum = sum + head.val;head = head.next;}return sum;}

在这里插入图片描述

10.反转一个单链表

反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

10.1.借用外部空间

在这里插入图片描述
使用list集合存储所有的节点,然后按照list集合的反序循环,创建节点,此时创建的链表就是反转后的链表

	public ListNode reverseList(ListNode head) {List<Integer> list = new ArrayList<>();ListNode headTemp = new ListNode(0);while (head != null) {list.add(head.val);head = head.next;}ListNode temp = headTemp;for (int i = list.size() - 1; i>=0; i--) {temp.next = new ListNode(list.get(i));temp = temp.next;}return headTemp.next;}

10.2.迭代法

在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。
在这里插入图片描述

    public ListNode reverseList(ListNode head) {ListNode prev = null;ListNode curr = head;while (curr != null) {ListNode temp = curr.next;curr.next = prev;prev =curr;curr = temp;}return prev;}

在这里插入图片描述

11.两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
在这里插入图片描述
输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]

11.1.递归:使用递归模板

使用递归求解此问题时,我们先来看一个递归模板
当我们实现一个递归函数的时候,我们需要先抽取出如下三个模块
1、递归终结条件;
2、处理当前递归层的逻辑;
3、进入下一层递归;

	public void/Object recursion(Object obj1,Object obj2) {//递归终止条件if(obj1 != obj2) {return;//return new Object();}//当前层递归处理逻辑//进入下一层递归recursion(obj1, obj2);//Object obj = recursion(obj1, obj2);}

我们举个例子:
例如链表是123456,我们需要反转成214365
21、43、65我们可以看做三次操作来完成,对于21操作,我们是将12变成21,然后将1和下一次操作返回的节点进行链接。
根据上述模板,我们来看:
1、递归终止条件:两个互换的节点,任意一个为null,即当前节点为null,或者next为null;

public ListNode swapPairs(ListNode head) {//1、递归终止条件if(node == null || node.next == null) {return node;}//2、当前层递归处理逻辑//3、进入下一层递归swapPairs(head);
}

2、当前递归层逻辑处理:将原本的node1指向node2,变成node2指向node1,然后node1指向下一次递归返回的节点(下次递归返回43);

public ListNode swapPairs(ListNode head) {//1、递归终止条件if(node == null || node.next == null) {return node;}//2、当前层递归处理逻辑:取出node2ListNode node2 = node.next;//3、进入下一层递归//2、当前层递归处理逻辑:将node指向下一次递归返回的节点node.next = swapPairs(node.next.next);//2、当前层递归处理逻辑:将node2指向node1node2.next = node;
}

在这里插入图片描述

11.2.迭代法:单一到循环

对于链表1234,反转后是2143,必然会执行两次操作,那么我们可以先别考虑多个操作时,只考虑第一次操作,
将1234变成2134
在这里插入图片描述
因此我们代码实现就是如下所示:实现效果为1234变成2134

	public static ListNode swapPairs2(ListNode head) {ListNode dummy = new ListNode(-1);dummy.next = head;//哨兵节点:存储指向头节点的指针ListNode prevNode = dummy;//需要交换的节点 node1 和node2ListNode node1 = head;ListNode node2 = head.next;//交换node1和node2prevNode.next = node2;node1.next = node2.next;node2.next = node1;return dummy.next;}

在完成21交换后,因此我们接下来还需要执行34的交换,而执行34的交换,和12的交换是一样的操作,也就是需要重复进行12的操作,唯一区别就是操作的元素不是12 而是34,哨兵节点也不再-1,而是1。

	public static ListNode swapPairs2(ListNode head) {ListNode dummy = new ListNode(-1);dummy.next = head;//哨兵节点:存储指向头节点的指针ListNode prevNode = dummy;while (head != null && head.next != null) {//需要交换的节点ListNode node1 = head;ListNode node2 = head.next;//交换prevNode.next = node2;node1.next = node2.next;node2.next = node1;prevNode = node1;head = node1.next;}return dummy.next;}

在这里插入图片描述

12.合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

12.1.借用外部空间:创建有序链表

依次循环两个链表,获取到链表中的元素后,将元素排序好以后,然后根据创建好的元素创建链表。

	public ListNode mergeTwoLists(ListNode l1, ListNode l2) {List<Integer> list = new ArrayList<>();while (l1 != null) {list.add(l1.val);l1 = l1.next;}while (l2 != null) {list.add(l2.val);l2 = l2.next;}if(list.isEmpty()) {return null;}Collections.sort(list);ListNode newlistNode = new ListNode(list.get(0));ListNode temp = newlistNode;for (int i = 1; i < list.size(); i++) {temp.next = new ListNode(list.get(i));temp = temp.next;}return newlistNode;} 

在这里插入图片描述

12.2.递归:单一到循环

在上一题中,两两交换链表的节点,我们使用递归模板来解决,其实我们可以在换另一种思维来解决。从单一体到循环体来思考。
假设有两个链表,两个链表最多只有一个节点,这时我们来合并这两个链表。
node1 : [2];node2:[1] 合并后 node2[1,2],并考虑node1和node2可能为空的时候

	public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1 == null) {					return l2;			//node1为空,所以直接返回node2} else if (l2 == null) {return l1;			//node2为空,所以直接返回node1} else if (l1.val < l2.val) {l1.next = l2;		//node1小于node2,所以node1指向node2return l1;} else {l2.next = l1;		//node2小于node1,所以node12指向node1return l2;}}

因此执行上述代码后,我们就可以针对单一节点的链表进行合并了。当我们实现了单个节点的链表合并排序后,其实,接下里的重复过程,就是将小的节点指向下一次递归返回的节点。

	public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1 == null) {					return l2;			//node1为空,所以直接返回node2} else if (l2 == null) {return l1;			//node2为空,所以直接返回node1} else if (l1.val < l2.val) {//l1.next = l2;		//node1小于node2,所以node1指向node2l1.next = mergeTwoLists(l1.next,l2);return l1;} else {//l2.next = l1;		//node2小于node1,所以node12指向node1l2.next = mergeTwoLists(l1,l2.next);return l2;}}

在这里插入图片描述

12.3.迭代

   	public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode prehead = new ListNode(-1);ListNode prev = prehead;while (l1 != null && l2 != null) {if (l1.val <= l2.val) {prev.next = l1;l1 = l1.next;} else {prev.next = l2;l2 = l2.next;}prev = prev.next;}prev.next = l1 == null ? l2 : l1;return prehead.next;}

在这里插入图片描述

13.K个一组反转链表

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
k 是一个正整数,它的值小于或等于链表的长度。
如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
示例:
给你这个链表:1->2->3->4->5
当 k = 2 时,应当返回: 2->1->4->3->5
当 k = 3 时,应当返回: 3->2->1->4->5
说明:
你的算法只能使用常数的额外空间。
你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

综上:在链表相关的算法中,我们最为直接的就是采取暴力的方式直接遍历链表,然后做判断。
遍历链表的时候一般有如下两种方式:
递归,迭代
在某些情况下,我们可以借用外部资源,如hash,List,利用这些数据结构来解决链表的问题,或者可以设置两个指针做遍历。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. servlet跨域解决 ccess to XMLHttpRequest at ‘http://xxxx‘’ from origin‘null‘ has been blocked by CORS

    servlet跨域解决 ccess to XMLHttpRequest at ‘http://xxxx‘’ from origin’null’ has been blocked by CORS 项目场景&#xff1a; 服务端是写的servlet&#xff0c;在编写AJAX对服务端请求时出现 问题描述&#xff1a; 报错代码&#xff1a; ccess to XMLHttpRequest …...

    2024/4/6 9:48:36
  2. RHCE8学习过程(十一)重定向和文件的查询(上)

    重定向和文件的查询&#xff08;上&#xff09;十一、重定向和文件的查询11.1、文件描述符11.1.1 输入输出标准说明查看一个进程打开了哪些文件查看和临时设置一个进程最多可以打开几个文件11.2、重定向的含义-管道的使用-tee 命令11.2.1 输出重定向查看当前主机的 CPU 的类型将…...

    2024/4/6 9:48:35
  3. 设备树的引入与体验

    设备树的引入与体验第01节_字符设备驱动程序的三种写法第02节_字符设备驱动的传统写法第03节_字符设备驱动的编译测试第04节_总线设备驱动模型第05节_使用设备树时对应的驱动编程第06节_只想使用不想深入研究怎么办第01节_字符设备驱动程序的三种写法 a. 驱动程序编写有3种方法…...

    2024/4/7 22:00:24
  4. 内核线程创建的理解

    kthread_create创建线程 kthread_stop发送停止线程信号 kthread_should_stop接收停止线程信号 create&#xff1a; static int printsth(void* data){int cnt 150000;while(cnt > 0 &&! kthread_should_stop()){printk("kct: %d\n", cnt);cnt--;msle…...

    2024/4/6 6:30:58
  5. 「信息安全技术」期末复习宝典 【整理】(问答题考点)

    文章目录1、简单替换密码加解密&#xff08;重点&#xff09;2、DES算法的原理3、RSA算法的全过程4、基于公开密钥的数字签名方案&#xff08;重点&#xff09;5、单项散列函数的特点6、简述信息的完整性、可用性、保密性7、请简述数字水印的主要特性&#xff08;重点&#xff…...

    2024/5/3 15:54:00
  6. Java二级考题-T4

    11道二级考题练习 1.Java语言与C语言相比&#xff0c;最突出的特点是____ A、面向对象 B、高性能 C、跨平台 D、有类库 本题考的是Java与C的比较。 在不同的平台上&#xff0c;Java有不同的JVM&#xff0c;使Java字节码可以跨越平台的限制&#xff0c;在不同的平台上运行。但C…...

    2024/4/17 7:20:23
  7. java Future小记,自用

    文章参考 Future 详解 1. Future&#xff1f;异步&#xff1f; 在线程池中&#xff0c;我们知道调用future.get()方法是会阻塞当前线程&#xff0c;知道得到get方法的返回值之后才继续运行&#xff0c;所以future是异步编程&#xff1f; 线程池中的提交任务的方法有两种&…...

    2024/4/17 7:20:21
  8. 数据分析-numpy

    数据分析-numpy基本操作numpy读取数据数组的转置numpy索引和切片numpy中数值的修改**numpy&#xff1a;**一个在Python中做科学计算的基础库&#xff0c;重在数值计算&#xff0c;也是大部分PYTHON科学计算库的基础库&#xff0c;多用于在大型、多维数组上执行数值运算 **特点…...

    2024/4/6 9:48:33
  9. TikTok数据分析工具介绍

    TikTok在全球覆盖超过150个国家&#xff0c;涉及超过39种语言&#xff0c;毋庸置疑已经成为时下最火的短视频社交媒体平台。国内越来越多的商家和创作者对于出海探索跃跃欲试。不过&#xff0c;由于TikTok所涉及的地域跨度较大&#xff0c;而且与国内的文化差异明显&#xff0c…...

    2024/4/6 5:31:01
  10. 上次挂在了京东Java二面不服气, 三月之期已到,这次终于拿下offer!

    前言 这话要从三个月前说起&#xff1a;当时一名水友告诉我想要跳槽去京东&#xff0c;然后我就本着推波助澜&#xff0c;为粉丝打气的心态&#xff08;也可能是看热闹不嫌事儿大&#xff1f;&#xff09;就支持他一定要去&#xff0c;梦想一定要有&#xff0c;没准儿就实现了…...

    2024/4/6 9:48:31
  11. 应届小菜鸟,啃完阿里大佬整理学习手册,七面拿到阿里offer

    前言 呼&#xff01;终于拿到阿里offer了&#xff0c;可以放松一下休息休息了&#xff0c;想想这将近一个月的面试经历&#xff0c;实在是太难了&#xff01; 背景 普通本科&#xff0c;非985&#xff0c;非211的一个普通本科&#xff0c;应届生&#xff0c;在学校的成绩算不…...

    2024/4/6 9:48:31
  12. centos6下编译ffmpeg

    根据ffmpeg官方指引 以及各类百度出来的 结合了一下 环境 系统环境&#xff1a;CentOS release 6.9 64位 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake freetype-devel gcc gcc-c git libtool make mercurial nasm pkgconfig zl…...

    2024/4/6 9:48:29
  13. .tcprx勒索病毒 .DECC勒索病毒 .mnbzr勒索病毒 .deadfiles勒索病毒,修复应对方案。

    可修复扩展后缀.tcprx勒索病毒&#xff0c;它属于Dharma家族勒索病毒。可修复扩展后缀.DECC勒索病毒&#xff0c;它属于Matrix家族勒索病毒。可修复扩展后缀.mnbzr勒索病毒&#xff0c;它属于Dharma家族勒索病毒。可修复扩展后缀.deadfiles勒索病毒&#xff0c;它属于MedusaLoc…...

    2024/5/1 9:27:23
  14. centos7部署zabbix监控系统

    zabbix监控系统 什么是zabbix监控系统&#xff1f; zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在…...

    2024/4/6 9:48:27
  15. vue 常用插件库总结

    一、UI组件及框架 element - 饿了么出品的Vue2的web UI工具套件 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI 组件库 Keen-UI - 轻量级的基本UI组件合集 vue-material - 通过Vue Material和Vue 2建立精美的app应用 muse-ui - 三端样式一致的响应式 UI 库 …...

    2024/5/3 15:54:35
  16. FFMPEG NVIDIA硬件加速总结

    目录 1.NVDIA概述 2.FFmpeg集成到GPU 3.FFmpeg uses Video Codec SDK 4.ffmpeg对NVIDIA GPU的编译步骤 4.1configure命令 4.2 make 4.3 ffmpeg测试 4.4 编解码器使用方法 4.5 程序开发使用方法 5.源码分析 5.1 h264部分 5.2h265部分 1.NVDIA概述 FFmpeg可通过Nvidi…...

    2024/4/6 9:48:25
  17. 21届秋招前端面经 --支付宝

    事件委托的原理 事件委托就是利用事件冒泡&#xff0c;只指定一个事件处理程序&#xff0c;就可以管理某一类型的所有事件。 好处&#xff1a; 在JavaScript中&#xff0c;添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能&#xff0c;因为需要不断的与dom节点…...

    2024/4/6 9:48:25
  18. 光电材料-制造各种光电设备

    光电材料-制造各种光电设备 光电材料是指用于制造各种光电设备&#xff08;主要包括各种主、被动光电传感器光信息处理和存储装置及光通信等&#xff09;的材料&#xff0c;主要包括红外材料、激光材料、光纤材料、非线性光学材料等。下面主要介绍一下红外材料、激光材料及其在…...

    2024/4/6 9:48:23
  19. OpenCV计算机视觉学习(4)——图像平滑处理(均值滤波,高斯滤波,中值滤波,双边滤波)

    人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…...

    2024/4/6 9:48:22
  20. Linux多线程编程

    本章将分为两大部分进行讲解&#xff0c;前半部分将引出线程的使用场景及基本概念&#xff0c;通过示例代码来说明一个线程创建到退出到回收的基本流程。后半部分则会通过示例代码来说明如果控制好线程&#xff0c;从临界资源访问与线程的执行顺序控制上引出互斥锁、信号量的概…...

    2024/4/28 12:09:11

最新文章

  1. 基于STM32的最小系统电路设计(STM32F103C8T6为例)

    前言&#xff1a;本篇博客为嵌入式硬件领域的文章&#xff0c;对 STM32 的最小系统电路设计进行教学。本篇博客以嘉立创 EDA&#xff08;标准版&#xff09;进行绘制 STM32F103C8T6 的最小系统电路 PCB 板&#xff0c;STM32 的最小系统通常包括&#xff1a;微控制器、时钟电路、…...

    2024/5/3 21:40:57
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 云计算概述报告

    以下是一篇论述类文章 文章目录 I. 云计算介绍&#xff08;1&#xff09;云计算基本概念&#xff08;2&#xff09;云计算基本特征 II. 云计算发展历程&#xff08;1&#xff09;云计算的起源&#xff08;2&#xff09;云计算的发展阶段 III. 云计算特点&#xff08;1&#xff…...

    2024/4/30 2:34:28
  4. wireshark流量分析

    wireshark流量分析 着色规则&#xff1a; 显示自定义列 wireshark 默认显示列 No:编号,即pacp开始的帧号 Time:时间&#xff0c;分解为纳秒 Source&#xff1a;源地址&#xff0c;通常为IPv4、IPv6、以太网地址 Destination:目的地址&#xff0c;通常为IPv4、IPv6、以太网地…...

    2024/5/1 14:59:37
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/3 11:50:27
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/3 11:10:49
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/2 9:47:30
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/3 13:26:06
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/2 9:47:28
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/3 14:57:24
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/2 23:47:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/2 18:46:52
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/3 7:43:42
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57