链表相关
2021/12/28 23:12:12
本文主要是介绍链表相关,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、链表反转
模板:
1.1 反转链表
1 class Solution { 2 public ListNode reverseList(ListNode head) { 3 ListNode prev = null; 4 ListNode curr = head; 5 while (curr != null) { 6 ListNode next = curr.next; 7 curr.next = prev; 8 prev = curr; 9 curr = next; 10 } 11 return prev; 12 } 13 }
1.2 反转某个区间(leff, right)的节点
K 个一组翻转链表
反转链表 II
1 public ListNode[] myReverse(ListNode head, ListNode tail) { 2 ListNode prev = tail.next; 3 ListNode p = head; 4 while (prev != tail) { 5 ListNode nex = p.next; 6 p.next = prev; 7 prev = p; 8 p = nex; 9 } 10 return new ListNode[]{tail, head}; 11 }
2、快慢指针
比较两种方式 快指针的初始位置,以及循环条件
2.1 链表的中间结点
class Solution { public: ListNode* middleNode(ListNode* head) { ListNode* slow = head; ListNode* fast = head; while (fast != NULL && fast->next != NULL) { slow = slow->next; fast = fast->next->next; } return slow; } };
2.2 环形链表
public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNode fast = head.next; while (slow != fast) { if (fast == null || fast.next == null) { return false; } slow = slow.next; fast = fast.next.next; } return true; } }
这篇关于链表相关的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-0601-电商商品中心解密:仅凭SKU真的足够吗?
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能