个人注释
法一:
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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。