思路:递归进行逆向遍历,对于每一个结点,返回它和它的下一个结点之间的最大结点作为上一个结点的下一个结点
代码:
class Solution {
public:
ListNode* removeNodes(ListNode* head) {
if(head -> next == NULL) return head;
head -> next = removeNodes(head -> next);
if(head -> next -> val > head -> val) return head -> next;
return head;
}
};