ICode9

精准搜索请尝试: 精确搜索
  • 2022-4-4 高频面试题2022-04-04 16:00:23

    148. 排序链表 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode() {} 7 * ListNode(int v

  • 关于链表的一些题目2022-03-30 12:31:31

    关于链表的一些题目 1、双链表的交点 使用双指针,假设 A 链表的长度是 lenA ,B的长度是 lenB,根据lenA+lenB = lenB+lenA,让A指针遍历完A之后去便利B,B指针同理。即可在相遇时获得交点。即使没有交点,两指针在遍历完两个链表之后会同时指向 null 如果其中一个链表为空,则没有焦点。 注

  • 数据结构 - (2)链表2022-03-29 11:35:11

    链表整体代码及相关操作: #include <stdio.h> #include <stdlib.h> #include <time.h> //声明结点结构 typedef struct ListNode { int data; struct ListNode *next; } ListNode; //声明链表结构 typedef struct LinkList { ListNode head; int length; } Link

  • 206. 反转链表2022-03-28 00:02:36

    206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。   示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[]   提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5

  • BM4 合并两个排序的链表2022-03-27 22:00:07

                    function ListNode(x){ this.val = x; this.next = null; } function Merge(pHead1, pHead2) { // write code here let cur = new ListNode() let dummy = cur while(pHead1 && pHead2){ if(pHead1.val <= pHe

  • Two Lists Sum Advanced2022-03-27 14:35:19

    Source Given two numbers represented by two linked lists, write a function that returns sum list. The sum list is linked list representation of addition of two input numbers. Example Input: First List: 5->6->3 // represents number 563 Secon

  • 剑指 offer#062022-03-27 11:03:53

    题目描述: 这题表述的很明确了,从最末尾的元素开始输出,这让我们想到的数据结构就是栈了。 思路:先把链表中存储的数据压入栈中,然后弹出到一个动态数组vector中,最后返回数组。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex

  • 备战华为机考——链表2022-03-24 23:59:32

    如果定义中有 ListNode(int val, ListNode next)这个构造函数 则定义虚拟节点的时候可以用两个参数,如:ListNode dummy = new ListNode(-1, head),其中head指的是dummy指向的下一个节点。 如果构造函数只有(int val),那么就 ListNode dummy = new ListNode(0);

  • 141.环形链表----leetcode每日一题(大厂常见笔试面试题)2022-03-21 17:31:01

    环形链表 1、题目2、思路3、代码4、扩展追问扩展追问1扩展追问2扩展追问3题目思路思路1思路2 1、题目 链接:141.环形链表I 2、思路 3、代码 bool hasCycle(struct ListNode *head) { struct ListNode*slow = head;//慢指针 struct ListNode*fast = head;//

  • 链表笔记(自用)2022-03-20 21:33:45

     链表定义(来源leetcode) /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next

  • LeetCode练习题2022-03-20 18:32:22

    文章目录 1、单链表的反转(迭代、递归)2、 统计n以内的素数个数(暴力法、埃筛法)3、删除排序数组中的重复项(双指针法)4、寻找数组的中心下标5、求x的平方根(二分法、牛顿迭代) 1、单链表的反转(迭代、递归) public class ReverseSingleList { public static void main(String[

  • 牛客网---链表的回文结构2022-03-20 16:07:11

    写题目 我们需要知道题目的原理 例: 1 2 3 2 1 1 4 5 7 5 4 1 1 2  2 1 像这种正着读和反着读相同 就是回文结构 那我们该怎么着解这道题目呢 我现在给大家看一个例题 那我们把中间数后的东西 倒过来 再让两个指针一个从开头 1 一个从3后面的第一个数 1 开始比较  如果第

  • 《数据结构》十道链表经典面试题多种方法深度解析2022-03-20 12:02:34

    目录 ⛰️一、题目解析

  • 【剑指 Offer 24. 反转链表】2022-03-20 11:35:54

    中间栈 双指针 递归 题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路 方法一:中间栈 利用中间栈来反转链表,但效率极低: 算法流程: 当链表不为空,将链表中的值依次拿到中

  • 求链表环入口位置2022-03-20 10:58:33

    /************************************************************************* > File Name: 1-删除链表的倒数第N个节点.cpp > Author: > Mail: > Created Time: Sat 19 Mar 2022 09:14:55 AM CST 通过快慢指针实现,快慢指针最初都指向头结点,让快指针

  • 【力扣刷题】【1-50】19. 删除链表的倒数第 N 个结点2022-03-19 23:30:35

    19. 删除链表的倒数第 N 个结点 1.简单模拟,计算链表长度 如果知道链表的长度,以及倒数第几个节点需要删去,就可得知正数需要删除第几个节点。可以先遍历一次计算出长度,再删除相应节点。 链表相应的题目,可以使用哑巴节点dummy,避免头节点为空的讨论问题,无论何种情况,只需要dummy

  • 力扣,两两交换链表中的节点2022-03-19 21:01:09

    class Solution { public static ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head; ListNode result=null; ListNode index=head; // 记录链表的交换前的前置节点位置 ListNode pre=null;

  • BM7 链表中环的入口结点2022-03-19 17:32:29

    解题思路:声明两个指针,快指针一次走两步,慢指针一次走一步 最后的结论是:有环的话两个指针一定会相遇,且相遇点到环口的距离=起点到环口的距离 所以相遇之后,慢指针走一步,头结点走一步,最后一定会在环的入口相遇 /* public class ListNode { int val; ListNode next = n

  • LeetCode第19天--链表分割2022-03-19 17:01:34

    题目描述 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 解题思路:首先,先定义两个新的头节点,分别用来保存小于x的节点和不小于x的节点,遍历原链表,当前节点小于x的时候,将它

  • 160.相交链表|双指针走个循环a+b或者b+a2022-03-19 16:04:56

    双指针,一个走a+c+b,一个走b+c+a。具体见代码注释 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def getIntersectionNode(self, headA: ListNode, head

  • golang 空结构体2022-03-19 16:01:34

    今天做力扣141题环形链表,碰到了空结构体这个问题,有点意思,记录一下 原文题解: func hasCycle(head *ListNode) bool { seen := map[*ListNode]struct{}{} for head != nil { if _, ok := seen[head]; ok { return true } seen[he

  • LeetCode刷题笔记- 143.翻转链表2022-03-19 14:34:01

    LeetCode刷题笔记- 141.环形链表 不同速率同赛道相遇方案C代码注意点 不同速率同赛道相遇方案 C代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ bool hasCycle(struct ListNode *head

  • 反转链表(简单)2022-03-19 09:31:25

    反转链表 1、双指针 struct ListNode { int val; ListNode* next; ListNode(int x):val(x), next(nullptr){} }; class Solution{ ListNode* reverseList(ListNode* head){ ListNode* temp; ListNode* cur = head; ListNode* pre =

  • c笔试题-删除链表的倒数第 n 个结点2022-03-19 06:33:37

    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。   * struct ListNode { * int val; * struct ListNode *next; * };   这段代码运行结果: 输入[1,2,3,4,5] 2 输出[1,2,3,4] 预期结果[1,2,3,5] struct ListNode* removeNthFromEnd(struct ListNode* h

  • 链表经典练习题合集2(Java版)2022-03-18 23:31:22

    本篇主要为leetcode上链表部分中等及困难难度练习题,链表部分的习题画图十分重要,只要链表结构画出来,再写代码解决问题就容易很多。做完这些难度高的习题后发现,其实中等难度的习题只是将两个甚至三个以上的知识点融汇到一个题目中,当掌握链表的基本处理方法后,并用心去钻研,解决这些

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有