zoukankan      html  css  js  c++  java
  • 1721. Swapping Nodes in a Linked List

    You are given the head of a linked list, and an integer k.

    Return the head of the linked list after swapping the values of the kth node from the beginning and the kth node from the end (the list is 1-indexed).

    Example 1:

    Input: head = [1,2,3,4,5], k = 2
    Output: [1,4,3,2,5]
    

    Example 2:

    Input: head = [7,9,6,6,7,8,3,0,9,5], k = 5
    Output: [7,9,6,6,8,7,3,0,9,5]
    

    Example 3:

    Input: head = [1], k = 1
    Output: [1]
    

    Example 4:

    Input: head = [1,2], k = 1
    Output: [2,1]
    

    Example 5:

    Input: head = [1,2,3], k = 2
    Output: [1,2,3]
    

    Constraints:

    • The number of nodes in the list is n.
    • 1 <= k <= n <= 105
    • 0 <= Node.val <= 100
    class Solution {
        public ListNode swapNodes(ListNode head, int k) {
            ListNode dummy = new ListNode(-1);
            dummy.next = head;
            ListNode p = dummy, q = dummy;
            for(int i = 0; i < k; i++) p = p.next;
            while(p.next != null) {
                p = p.next;
                q = q.next;
            }
            p = dummy;
            for(int i = 0; i < k - 1; i++) p = p.next;
            int tmp = p.next.val;
            p.next.val = q.next.val;
            q.next.val = tmp;
            return dummy.next;
        }
    }

    和remove kth node from end of linked list一样,先把右边的kth node找到,然后找到左边的kthnode,交换value(没办法)即可。

  • 相关阅读:
    vue 自定义指令
    vue 插槽
    vue 菜单跳转 页面错乱
    vue项目中使用elementUI的el-tabs组件 浏览器卡死问题 解决办法
    vue 环境配置
    移动端页面 问题 注意事项
    定义全局 强制刷新指令
    手机端样式 处理
    手机访问电脑本地开发的页面
    百度AI
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14535287.html
Copyright © 2011-2022 走看看