首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    两两交换链表中的节点

    problem 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。...例如: 利用stack 我们利用一个 stack,然后不断迭代链表,每次取出两个节点放入 stack 中,再从 stack 中拿出两个节点。...拿出来的时候就是 2,1 两个节点了。 再把这两个节点串联起来,重复这个逻辑遍历完整个链表,就可以做到两两反转的效果了。...虽然用到了 stack,但因为只存了两个元素,所以空间复杂度还是 O(1),时间复杂度是 O(n)。...//当前节点往前走两步 cur = cur.next.next; //从stack中弹出两个节点,然后用p节点指向新弹出的两个节点

    59010

    反转还不行,要两两交换!

    两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 ? 思路 这道题目正常模拟就可以了。...接下来就是交换相邻两个元素了,此时一定要画图,不画图,操作多个指针很容易乱,而且要操作的先后顺序 初始时,cur指向虚拟头结点,然后进行如下三步: ? 操作之后,链表如下: ?...步骤二 cur->next->next->next = tmp1; // 步骤三 cur = cur->next->next; // cur移动两位...,准备下一轮交换 } return dummyHead->next; } }; 时间复杂度: 空间复杂度: 拓展 这里还是说一下,大家不必太在意力扣上执行用时...力扣上的统计如果两份代码是 100ms 和 300ms的耗时,其实是需要注意的。 如果一个是 4ms 一个是 12ms,看上去好像是一个打败了80%,一个打败了20%,其实是没有差别的。

    62320

    WPS Excel如何快速交换列(调整列顺序),删除多个不连续的列

    写表格的时候,最常见的两个小需求就是:把某两列换个位置,或者干脆删掉几列。其实这事儿不用折腾复杂功能,靠几招顺手的操作,几秒钟就能搞定。...首先我们需要选中整列将鼠标移动到您想要移动的列标题上(例如,您想移动C列,就将鼠标移到字母“C”上)。当鼠标指针变成一个向下的黑色粗箭头 ↓ 时,单击鼠标左键。这会选中整列。2....所以一定要按 Shift 来达到移动列的目的。快速删除列假如我要删除邮箱和手机号,注意,他们不是连续的列:1. 选中不连续的多列:先单击选中第一列的列标(例如B列)。...然后,按住键盘上的 Ctrl 键不松手,再依次去单击其他需要删除的列的列标(例如D列、F列)。这样可以逐个添加选区。2. 一键删除:在所有选中的列标上单击鼠标右键,选择“删除”。...多Excel文件如何一键处理删除和列调整呢如果有多个excel需要处理,wps可能就办不到了(wps如果可以您可以告诉我), 请您看 我的专题的 另外一篇文章:【批量办公技巧】一键对多个Excel文件交换列

    2.3K10

    【LeetCode刷题日记:24】两两交换链表

    题目背景:LeetCode24 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。...因为是两两交换,自然就是虚拟头节点的next.next.next,这里没什么深究的,而此时的firstnode也就相当于一开始虚拟头节点的作用,用于联系交换后面两个节点。...然后就是关于循环条件 如果链表有偶数个,那么循环的终止条件就是cur.next==null的时候,如图所示,执行完两次交换之后,此时的cur等于被交换之后val==3的那个位置 如图,因为是偶数节点,那么他后面的节点自然就是...注意:这两个条件的位置一定不能交换,否则会报空指针异常 cur.next.next != null // 先执行这个!...完整结果:2 → 1 → 4 → 3 → null ✅ 关键点总结: 递归从链表尾部向前建立两两交换后的链表 每次递归返回的是交换完这一对后,这一段的头节点(即原 next 节点)

    48510
    领券