Leetcode Java Remove Nodes From Linked List
업데이트:
문제
코드
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeNodes(ListNode head) {
if (head != null) {
head.next = this.removeNodes(head.next);
if (head.next != null && head.val < head.next.val) {
return head.next;
}
}
return head;
}
}
결과
설명
-
각 노드에서 해당 노드의 값보다 작은 좌측 노드를 제거하는 문제이다.
- head가 null이 아닌 경우, 아래를 수행한다.
- head의 next 노드에 head의 next ListNode를 넣어 재귀 호출한 결과를 넣어준다.
- 아래 경우 모두 만족하는 경우, head의 next ListNode를 반환한다.
- head의 next 노드가 null이 아닌 마지막 노드가 아닌 값이 비교가 가능한 경우.
- head의 val 값이 head의 next ListNode val 값보다 작아 제거되는 경우.
- 위 경우들을 만족하지 않는 경우, head를 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기