2021-12-6 力扣(链表)

1. 203移除链表元素

在这里插入图片描述
answer:
思路:
dummy.next = head; // 返回用的
考虑p head;
<1> 如果 head.val = val;
p.next = head.next;
head = head.next;
<2>不等则顺移
p = p.next;
head = head.next;

public ListNode removeElements(ListNode head, int val) {
        if (head == null)
            return null;
        ListNode dummy = new ListNode();
        dummy.next = head;
        ListNode p = dummy;
        while (head != null) {
            if (head.val == val) {
                p.next = head.next;
                head = head.next;
            } else {
                p = p.next;
                head = head.next;
            }
        }
        return dummy.next;
    }

2. 206 反转链表

在这里插入图片描述

answer:
此题递归法不会!后面看下!。;
p = null;
考虑p, head;
head.next = p;

再顺移:
p = head;
head = q;(此处q得先保存:ListNode q = head.next;)

public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null)
            return head;
        ListNode p = null;
        while (head != null) {
            ListNode q = head.next;
            head.next = p;
            p = head;
            head = q;
        }
        return p;
    }

NOTE:

<1> null.next; 执行时会出错;
<2>
ListNode p;
p.next = head;出错,没有分配空间直接用了;
<3>
ListNode p;
p = head.next;对的!正常使用。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值