算法学习day03链表part01-203、707、206--待办

// 这块需求重新进行学习
package
LeetCode.linkedlistpart01; public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无参) public ListNode() { } // 节点的构造函数(有一个参数) public ListNode(int val) { this.val = val; } // 节点的构造函数(有两个参数) public ListNode(int val, ListNode next) { this.val = val; this.next = next; } }
package LeetCode.linkedlistpart01;

/**
 * 203. 移除链表元素
 * 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
 * 示例:
 * 输入:head = [1,2,6,3,4,5,6], val = 6
 * 输出:[1,2,3,4,5]
 * */
public class RemoveLinkedListElements_203 {
    public static void main(String[] args) {
        // 链表这块先暂停
        // 链表数据结构这块属实不熟悉,所以等把这块知识先补一下再进行练习
    }
    public static ListNode removeElements(ListNode head, int val) {
        if (head == null) {
            return head;
        }
        // 因为删除可能涉及到头节点,所以设置dummy节点,统一操作
        ListNode dummy = new ListNode(-1, head);
        ListNode pre = dummy;
        ListNode cur = head; //定义一个临时指针
        while (cur != null) {
            if (cur.val == val) {
                pre.next = cur.next;
            } else {
                pre = cur;
            }
            cur = cur.next;
        }
        return dummy.next;
    }


}

 

posted @ 2023-04-22 21:51  坤坤无敌  阅读(20)  评论(0)    收藏  举报