首页 > 编程语言 >代码随想录算法训练营第四天| 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

代码随想录算法训练营第四天| 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

时间:2022-11-24 09:35:45浏览次数:54  
标签:head slow ListNode 随想录 fast next 链表 null 节点

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

class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode dummyHead = new ListNode();
        dummyHead.next = head;
        ListNode cur = dummyHead;
        while (cur.next != null && cur.next.next != null) {
            ListNode tmp;
            tmp = cur.next.next;
            cur.next.next = tmp.next;
            tmp.next = cur.next;
            cur.next = tmp;
            cur = tmp.next;
        }
        return dummyHead.next;
    }
}

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

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

面试题 02.07. 链表相交

public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) {
            return null;
        }
        ListNode Ahead = headA;
        ListNode Bhead = headB;

        while (Ahead != Bhead) {
            if (Ahead == null) {
                Ahead = headB;
            } else {
                Ahead = Ahead.next;
            }
            if (Bhead == null) {
                Bhead = headA;
            } else {
                Bhead = Bhead.next;
            }
        }
        return Ahead;
    }
}

142. 环形链表 II

public class Solution {
    public ListNode detectCycle(ListNode head) {
        boolean isMeet = false;
        
        if (head == null ||head.next == null) {
            return null;
        }
        ListNode fast = head.next.next, slow = head.next;
        if (fast == head) {
            return head;
        }
        while (fast != slow && fast != null && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
            if (fast == slow) {
                isMeet = true;
            }
        }
        if (isMeet) {
            slow = head;
            while (slow != fast) {
                slow = slow.next;
                fast = fast.next;
            }
        }else{
            fast = null;
        }
        return fast;
        
    }
}

标签:head,slow,ListNode,随想录,fast,next,链表,null,节点
From: https://www.cnblogs.com/Chain-Tian/p/16920795.html

相关文章

  • 代码随想录Day29
    LeetCode654.最大二叉树给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构......
  • 代码随想录算法训练营Day08|344. 反转字符串、541. 反转字符串 II、剑指 Offer 05. 替
    代码随想录算法训练营Day08|344.反转字符串、541.反转字符串II、剑指Offer05.替换空格、151.反转字符串中的单词、剑指Offer58-II.左旋转字符串344.反转字符......
  • javascript-代码随想录训练营day8
    344.反转字符串题目链接:https://leetcode.cn/problems/reverse-string/题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。......
  • 单链表的排序问题
    单链表的排序问题作者:Grey原文地址:博客园:单链表的排序问题CSDN:单链表的排序问题题目链接LeetCode148.SortList思路一:转换数组结合快速排序将链表转换成数组,使用......
  • k8s 删除 node节点
    查看现有状态[root@master~]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONmasterNotReadycontrol-plane72sv1.25.0node1N......
  • 【算法】LRU 缓存机制,删除排序链表中的重复元素,买卖股票的最佳时机三道算法题
    买卖股票的最佳时机题目描述给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个......
  • 循环链表
    循环链表介绍很多时候我们找查询链表内的结点,只能方位当前结点以及其后续的结点,无法访问前面的结点。简单举个例子,就比如使用Windows自带文本文档(记事本)的查找功能时,当......
  • 算法4: LeetCode_K个节点的组内逆序调整
    最近一直都是链表的算法练习,今天刷的是LeetCode原题,还是关于链表的节点逆转,难度等级:Hard.首先看题目:给定一个单聊表的头节点head和一个正整数k,要求实现k个节点的小组内......
  • 代码随想录——数组
    前言:由于时间有限,刷代码随想录就不再像剑指offer的几篇博客那样把题解写的那么详细了。这里仅写几个注意点,详细题解看卡神的即可。二分查找题目 简单注意:区间的处理......
  • 随想录(在实践中学习kernel代码)
       记得我在读书的时候,虽然老师也教过操作系统的课程,但是自己的理解却不是很充分,实践部分的内容就更少。对于课程中的内容,比如说中断、互斥、线程、IO等概念常常也是一......