Leetcode Java Insert Greatest Common Divisors in 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 insertGreatestCommonDivisors(ListNode head) {
if (head.next != null) {
ListNode node = head;
while (node.next != null) {
ListNode temp = new ListNode(this.getGcd(node.val, node.next.val), node.next);
node.next = temp;
node = temp.next;
}
}
return head;
}
private int getGcd(int m, int n) {
if (n == 0) {
return m;
} else {
return this.getGcd(n, m % n);
}
}
}
결과
설명
-
head의 각 노드 사이에 최대 공약수를 넣어주는 문제이다.
- head의 next 노드가 null이 아닌, 두 노드 이상인 경우만 아래를 수행한다.
- node의 next 노드가 null이 아닐 때 까지 node의 val 값과 node.next 노드의 val 값을 이용한 최대 공약수를 두 노드 사이에 이어준다.
- 반복이 완료되면 각 노드 사이에 최대 공약수가 들어간 head를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기