从LeetCode走进链表

Posted Recently 祝祝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从LeetCode走进链表相关的知识,希望对你有一定的参考价值。

链表

  1. 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)
  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; 
  

1:移除链表元素

讲解:

链表具有前pre跟后next的概念,由于可能需要删除的头节点,所以想要一个方法契合所有地方的节点删除,在链表的头部添加一个节点

代码:

public class removeLinkedList 

    public static ListNote removeElements(ListNote head, int val) 
        if (head == null) 
            return head;
        
        //头结点前面添加一个节点
        ListNote shimmer = new ListNote(-1, head);
        ListNote pre = shimmer;
        ListNote cur = head;
        while (cur != null) 
            if (cur.val == val) 
                pre.next = cur.next;
             else 
                pre = cur;
            
            cur = cur.next;
        
        return shimmer.next;
    

2:设计链表

以上是关于从LeetCode走进链表的主要内容,如果未能解决你的问题,请参考以下文章

从LeetCode走进数组

从LeetCode走进数组

Leetcode练习(Python):链表类:第92题:反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

Leetcode 两个数字相加 Q:如何从一个数字创建链表?

走进JDK------LinkedList

走进JavaWeb技术世界10:从JavaBean讲到Spring