Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 1.05 KB

Question_2807.md

File metadata and controls

41 lines (32 loc) · 1.05 KB

LeetCode Records - Question 2807 Insert Greatest Common Divisors in Linked List

Attempt 1: Use a helper function to get the greastest common divisor node

class Solution {
    public ListNode insertGreatestCommonDivisors(ListNode head) {
        ListNode leftNode = head;
        ListNode rightNode = leftNode.next;

        while (rightNode != null) {
            ListNode middleNode = getGreatestCommonDivisorNode(leftNode.val, rightNode.val);
            leftNode.next = middleNode;
            middleNode.next = rightNode;

            leftNode = rightNode;
            rightNode = leftNode.next;
        }

        return head;
    }

    private ListNode getGreatestCommonDivisorNode(int num1, int num2) {
        int min = Math.min(num1, num2);
        
        int i = min;
        while (i > 1) {
            if (num1 % i == 0 && num2 % i == 0) {
                break;
            }

            i--;
        }

        return new ListNode(i);
    }
}
  • Runtime: 22 ms (Beats: 33.22%)
  • Memory: 45.02 MB (Beats: 31.36%)