diff --git a/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Lesson12.java b/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Lesson12.java index af7663e90..e4fb78fc6 100644 --- a/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Lesson12.java +++ b/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Lesson12.java @@ -7,6 +7,24 @@ public class Lesson12 { * https://github.com/yang-su2000/Leetcode-algorithm-practice/tree/master/3062-winner-of-the-linked-list-game */ public String gameResult(ListNode head) { - return null; + int oddPoints = 0; + int evenPoints = 0; + + for (ListNode current = head; + current != null && current.next != null; + current = current.next.next) { + if (current.val > current.next.val) { + evenPoints++; + } else { + oddPoints++; + } + } + if (oddPoints > evenPoints) { + return "Odd"; + } else if (evenPoints > oddPoints) { + return "Even"; + } else { + return "Tie"; + } } } diff --git a/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Stack.java b/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Stack.java index 8444fceca..655eea0b2 100644 --- a/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Stack.java +++ b/lesson_12/structs_java/structs_app/src/main/java/com/codedifferently/lesson12/Stack.java @@ -9,18 +9,28 @@ public Stack() { } public void push(int value) { - // Your code here + ListNode newNode = new ListNode(value); + newNode.next = top; + top = newNode; } public int pop() { - return 0; + if (isEmpty()) { + throw new IllegalStateException("Stack is empty"); + } + int value = top.val; + top = top.next; + return value; } public int peek() { - return 0; + if (isEmpty()) { + throw new IllegalStateException("Stack is empty"); + } + return top.val; } public boolean isEmpty() { - return true; + return top == null; } } diff --git a/lesson_12/structs_ts/package.json b/lesson_12/structs_ts/package.json index d7012e871..6f0268bdc 100644 --- a/lesson_12/structs_ts/package.json +++ b/lesson_12/structs_ts/package.json @@ -34,6 +34,5 @@ "tsc-watch": "^6.2.0", "typescript": "^5.6.2", "typescript-eslint": "^8.7.0" - }, - "dependencies": {} + } } diff --git a/lesson_12/structs_ts/src/lesson12.ts b/lesson_12/structs_ts/src/lesson12.ts index d4455564e..55f82223c 100644 --- a/lesson_12/structs_ts/src/lesson12.ts +++ b/lesson_12/structs_ts/src/lesson12.ts @@ -6,6 +6,25 @@ export class Lesson12 { * https://github.com/yang-su2000/Leetcode-algorithm-practice/tree/master/3062-winner-of-the-linked-list-game */ public gameResult(head: ListNode | null): string { - return ''; + let oddPoints = 0; + let evenPoints = 0; + let current: ListNode | null = head; + + while (current && current.next) { + if (current.val > current.next.val) { + evenPoints++; + } else { + oddPoints++; + } + current = current.next.next || null; + } + + if (oddPoints > evenPoints) { + return 'Odd'; + } else if (evenPoints > oddPoints) { + return 'Even'; + } else { + return 'Tie'; + } } } diff --git a/lesson_12/structs_ts/src/stack.ts b/lesson_12/structs_ts/src/stack.ts index b931ec0ef..da963158f 100644 --- a/lesson_12/structs_ts/src/stack.ts +++ b/lesson_12/structs_ts/src/stack.ts @@ -8,18 +8,28 @@ export class Stack { } push(value: number): void { - throw new Error('Not implemented'); + const newNode = new ListNode(value); + newNode.next = this.top; + this.top = newNode; } pop(): number | undefined { - throw new Error('Not implemented'); + if (this.top === undefined) { + return undefined; + } + const poppedNode = this.top; + this.top = this.top.next; + return poppedNode.val; } peek(): number | null { - throw new Error('Not implemented'); + if (this.top === undefined) { + throw new Error('Stack is empty'); + } + return this.top.val; } isEmpty(): boolean { - throw new Error('Not implemented'); + return this.top === undefined; } }