给你一个链表的头节点?
head
?。移除每个右侧有一个更大数值的节点。
返回修改后链表的头节点?
head
?。
class Solution {
private int max = 0;
public ListNode removeNodes(ListNode head) {
dfs(head);
return head;
}
private void dfs(ListNode root){
if(root == null){
return;
}
dfs(root.next);
if(root.val < max){
root.val = root.next.val;
root.next = root.next.next;
} else {
max = root.val;
}
}
}