ICode9

精准搜索请尝试: 精确搜索
  • 链表6:链表相交(面试题02.07)2022-08-11 18:01:42

    本题如下:(链接:https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/) 题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交:     题目数据 保证 整个链式

  • BM1 反转链表2022-08-11 10:00:28

    描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。   数据范围: 0\leq n\leq10000≤n≤1000 要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。   如当输入链表{1,2,3}时, 经反转后,原链表变为{3,2,1},所以对应

  • 876. 链表的中间结点2022-08-11 00:31:42

      labuladong 题解思路 难度简单650收藏分享切换为英文接收动态反馈 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。   示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测

  • Merge Two Sorted Lists2022-08-07 15:05:06

    Source Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example Given 1->3->8->11->15->null, 2->null , return 1->2->3->8->11->1

  • Leecode 206.反转链表(Java)2022-07-31 20:33:32

          想法: 1.设链表长度为n,如5,头节点head,则最后一个元素位置为head-1。      错误,发现行不通,此为链表非数组,存储位置不连续   2.设两个指针p,q,让p,q指向head,再让p指向head的下一个,若不为空,则交换pq(45321),接着q指向p,p指向p的下一个,若不为空则交换(43521),继续,直至p指向空,此

  • 两个链表相加2022-07-30 23:02:31

    package class04; /*** * 两个链表相加 * 给定两个链表的头节点head1和head2 * 认为从左到右是某个数字从低位到高位,返回相加之后的列表。 * 例子1:4->3->6 2->5->3 * 返回:6->8->9 * 解释:634 + 352 = 986 * * 例子2:3->5->2 4->4->9 * 返回:7->9->1->1 * 解释:253

  • 【数据结构】链表专题2022-07-30 19:02:51

    题单:LeetCode链表 2. 两数相加 /** * 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 *

  • 环形链表2022-07-29 19:03:50

    给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表

  • 两数相加2022-07-27 14:37:59

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。     示例 1: 输入:l1 = [2,4,3], l2 = [5,6

  • LeetCode/排序链表2022-07-25 17:34:24

    1. 合并两个有序链表 class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* preHead = new ListNode(-1); //一定要使用头指针并复制一个副本,不然后面循环操作不统一,未合并完的也不好加上去 ListNode* prev =

  • 链表专题训练2022-07-23 20:06:40

    1、合并两个有序链表   递归:判断两个节点值大小并递归下一次,递归出口为当节点为空时    class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: if not list1: return list2

  • 25. K 个一组翻转链表2022-07-22 21:01:56

    给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 来源:力扣(LeetCode)链接:h

  • leetcode.21. 合并两个有序链表2022-07-21 17:35:02

    将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。        输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2: 输入:l1 = [], l2 = []输出:[]示例 3: 输入:l1 = [], l2 = [0]输出:[0]  提示: 两个链表的节点数目范围是

  • 2022年7月21日 leecode 刷题日记2022-07-21 08:01:12

    21. 合并两个有序链表 难度简单2539收藏分享切换为英文接收动态反馈 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。    示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输

  • leetcode.2. 两数相加2022-07-15 11:06:24

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。     输入:l1 = [2,4,3], l2 = [5,6,4]输

  • 203. 移除链表元素2022-07-14 11:34:45

    203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,7], val = 7

  • 206.反转链表2022-07-14 11:32:41

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

  • leetcode 23 merge K soted lists2022-07-12 02:31:23

        返回成一个排好序的list   K  个,第一个NODE,开始比较; 每个LIST 第一个NODE ,作为比较开始,这样如此; prioty quee,最小数poll出来,等到其变成空,就得到   public LsitNode mergeKList(ListNode[] lists){ if(lists==null||lists.length==0) return null;// corner case Queue<L

  • 160 intersection of two linkedlist2022-07-12 02:02:53

    题目:找到两个linkedlist起始交集部分   如果没有交集,推出 O(1)     public class solution{public ListNode getIntersect(ListNode headA, ListNode headB){if(headA==null||headB==null) return null;ListNode a= headA;ListNode b=headB;while(a!=b){a=a==null?headB:a.next;b=

  • LEETCODE2 add two numbers2022-07-12 02:01:42

      so simple for this problem, but when I review it ,there are sill some main points which should be noticed.   1. dummy 2. carray. 3. after while l1,l2 != nulll  or carry=0   4.     public ListNode addTwoNumbers(ListNode l1,ListNdoe l2){ ListNode dummy

  • 328 Odd Eeven Linked list2022-07-12 02:01:07

            class Solution {     public ListNode oddEvenList(ListNode head) {         if(head==null) return null;         ListNode odd=head,even=head.next,evenHead=even;         while(even!=null&&even.next!=null){         

  • 328 add two number2022-07-12 02:00:37

            class Solution {     public ListNode oddEvenList(ListNode head) {         if(head==null) return null;         ListNode odd=head,even=head.next,evenHead=even;         while(even!=null&&even.next!=null){         

  • 325 add two nunber2022-07-12 02:00:30

    class Solution {     public ListNode oddEvenList(ListNode head) {         if(head==null) return null;         ListNode odd=head,even=head.next,evenHead=even;         while(even!=null&&even.next!=null){             odd.

  • 两数相加代码实现2022-07-12 01:00:40

    上代码: public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = new ListNode(); ListNode ln = head; ListNode ln1 = l1; ListNode ln2 = l2; int carry = 0; while(ln1 != null || ln2 != null){

  • 剑指offer(刷题DAY1)2022-07-10 21:03:44

    替换空格 class Solution { public String replaceSpace(String s) { StringBuilder res = new StringBuilder(); for(Character c : s.toCharArray()) { if(c == ' ') res.append("%20"); else res.ap

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

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

ICode9版权所有