当前位置:首页 > LeetCode > 正文内容

[饲养员刷leetcode]笔记四、链表 Linked List

a零点妖孽1年前 (2023-10-07)LeetCode417

四、链表 Linked List

1.1 链表是什么?

image-20230916101616207

image-20230916102046392

image-20230916102130888

1.2 链表常用的操作

image-20230916103730230

image-20230916103758765

image-20230916104342905

image-20230916104356643

image-20230916104808018

image-20230916105007134

image-20230916105125497

image-20230916110248658

1.3 java代码

package LinkedListTest;

import java.util.LinkedList;

/**
 * @author wzt
 */
public class LinkedListTest {
    public static void main(String[] args) {

        // Create a LinkedLists
        LinkedList<Integer> linkedList = new LinkedList<>();

        // Add Element
        // Time Complexity: O(1)
        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        // [1, 2, 3];
        System.out.println(linkedList);

        // Insert element
        // Time Complexity O(N)
        linkedList.add(2, 99);
        // [1, 2, 99, 3]
        System.out.println(linkedList);

        // Access Element
        // Time Complexity: O(N)
        int element = linkedList.get(2);
        // 99
        System.out.println(element);

        // Search Element
        // Time complexity: O(N)
        int index = linkedList.indexOf(99);
        // 2
        System.out.println(index);

        // Update Element
        // Time Complexity:O(N)
        linkedList.set(2, 88);
        // [1, 2, 88, 3]
        System.out.println(linkedList);

        // Remove Element
        // Time Complexity: O(N)
        linkedList.remove(2);
        // [1, 2, 3]
        System.out.println(linkedList);

        // Length
        // Time Complexity: O(1)
        int length = linkedList.size();
        // 3
        System.out.println(length);
    }
}

1.4 leetcode 203题

题目

image-20230916120035946

解题思路

image-20230916122449642

image-20230916122514948

伪代码

image-20230916124211146

java代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode prev = dummy;
        while(head != null){
            if(head.val == val){
                prev.next = head.next;
            }else{
                prev = head;
            }
            head = head.next;
        }
        return dummy.next;
    }
}

1.5 leetcode 206题

题目:

image-20230917095457486

解题思路:

image-20230917095624989

image-20230916173727707

伪代码

image-20230917095714622

java代码

/**
 * @author wzt
 * 反转一个单链表
 */
public class d206 {
    public static void main(String[] args) {
        ListNode head = new ListNode(1);
        ListNode listNode2 = new ListNode(2);
        ListNode listNode3 = new ListNode(3);
        ListNode listNode4 = new ListNode(4);
        ListNode listNode5 = new ListNode(5);
        head.next = listNode2;
        listNode2.next = listNode3;
        listNode3.next = listNode4;
        listNode4.next = listNode5;
    }

    public static ListNode reverseList(ListNode head) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        while(head != null && head.next != null){
            ListNode dnext = dummy.next;
            ListNode hnext = head.next;
            dummy.next = hnext;
            head.next = hnext.next;
            hnext.next = dnext;
        }
        // 返回头结点
        return dummy.next;
    }
}

// class ListNode{
//    int val;
//     ListNode next;
//     ListNode(){
//
//    }
//     ListNode(int val){
//        this.val = val;
//    }
//    ListNode(int val, ListNode next){
//        this.val = val;
//        this.next = next;
//    }
// }

扫描二维码推送至手机访问。

版权声明:本文由gdit1 Blog~发布,如需转载请注明出处。

本文链接:https://www.gdit1.cn/?id=39

标签: LeetCode
分享给朋友:
返回列表

上一篇:[饲养员刷leetcode]笔记三、数组Array

没有最新的文章了...

“[饲养员刷leetcode]笔记四、链表 Linked List” 的相关文章

[饲养员刷leetcode笔记]一、如何学,如何刷leetcode

[饲养员刷leetcode笔记]一、如何学,如何刷leetcode

一、如何学1.1 怎么刷题 1.2怎么记笔记 1.3 误区 注:版权仍归[爱学习的饲养员],仅做笔记分享,侵权联系删除...

[饲养员刷leetcode]笔记二、基础知识点

[饲养员刷leetcode]笔记二、基础知识点

二、基础知识点1.1 时间复杂度什么是时间复杂度?算法的执行效率 算法的执行时间与算法输入的值的关系大O表示法 O(n)常见的时间复杂度案例分析 常见的时间复杂度对比 1.2 空间 复杂度什么是空间复杂度算法存储空间与输入值之间的关系大O表示法 常见空间复杂度分析​ 占空间...

[饲养员刷leetcode]笔记三、数组Array

[饲养员刷leetcode]笔记三、数组Array

三、数组Array 注意: 需要牢记数组的时间复杂度 数组常用的操作: 1.4java当中数组常用的操作创建数组 添加元素 插入指定位置的时间复杂度是O(N),如果是插入到数组的后面的时间复杂度是O(1) 访问元素 时间复杂度为O(1)更新元素 时间复杂度为O(1)删...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。