2487. 从链表中移除节点(待补充)

个人注释

法一:

struct ListNode* removeNodes(struct ListNode* head) {
    if (head == NULL) { //递归结束条件:头指针为空
        return NULL;
    }
    head->next = removeNodes(head->next);   //链表递归,使可 从后面开始对链表进行操作
    if (head->next != NULL && head->val < head->next->val) {    //上次递归head->next等于此处返回值
        return head->next;  //跳过(即删除)当前head,使上次递归head->next指向当前head->next
    }
    else {
        return head;    //返回当前head,使上次递归head->next指向当前head
    }
}

//姿势点
//1)通过递归可从后面开始对链表进行操作

法二:

法三:

作者:力扣官方题解
链接:https ://leetcode.cn/problems/remove-nodes-from-linked-list/solutions/2587737/cong-lian-biao-zhong-yi-chu-jie-dian-by-z53sr/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(Leet,code,leetcode)