From f73dfd7cfa684fc4854e2a9a9f54fd8de7fb66da Mon Sep 17 00:00:00 2001 From: donghyeon95 Date: Sat, 1 Mar 2025 15:09:28 +0900 Subject: [PATCH 1/2] feat: Same Tree #228 --- same-tree/donghyeon95.java | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 same-tree/donghyeon95.java diff --git a/same-tree/donghyeon95.java b/same-tree/donghyeon95.java new file mode 100644 index 000000000..e8f46434d --- /dev/null +++ b/same-tree/donghyeon95.java @@ -0,0 +1,60 @@ +import java.util.LinkedList; +import java.util.Queue; + +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode() {} + * TreeNode(int val) { this.val = val; } + * TreeNode(int val, TreeNode left, TreeNode right) { + * this.val = val; + * this.left = left; + * this.right = right; + * } + * } + */ +class Solution { + public boolean isSameTree(TreeNode p, TreeNode q) { + // 트리 순회를 한다 + // 현재 순회한 값이 다르다면 return false + if (p==null && q==null) return true; + if (p==null && q!=null) return false; + if (p!=null && q==null) return false; + + Queue pQue = new LinkedList<>(); + pQue.add(p); + Queue qQue = new LinkedList<>(); + qQue.add(q); + + while (!pQue.isEmpty() && !qQue.isEmpty()) { + TreeNode pNode = pQue.poll(); + TreeNode qNode = qQue.poll(); + + if (pNode.val != qNode.val) return false; + if (pNode.left!=null && qNode.left!=null) { + pQue.add(pNode.left); + qQue.add(qNode.left); + } else if (pNode.left==null && qNode.left!=null) { + return false; + } else if (pNode.left!=null && qNode.left==null) { + return false; + } + + if (pNode.right!=null && qNode.right!=null) { + pQue.add(pNode.right); + qQue.add(qNode.right); + } else if (pNode.right==null && qNode.right!=null) { + return false; + } else if (pNode.right!=null && qNode.right==null) { + return false; + } + } + + return pQue.isEmpty() && qQue.isEmpty(); + + } +} + From 3dc6c79b517fa307c6c4dc4940edbc9027286664 Mon Sep 17 00:00:00 2001 From: donghyeon95 Date: Sat, 1 Mar 2025 15:53:47 +0900 Subject: [PATCH 2/2] feat: Remove Nth Node From End of List #248 --- .../donghyeon95.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 remove-nth-node-from-end-of-list/donghyeon95.java diff --git a/remove-nth-node-from-end-of-list/donghyeon95.java b/remove-nth-node-from-end-of-list/donghyeon95.java new file mode 100644 index 000000000..d15ced1c6 --- /dev/null +++ b/remove-nth-node-from-end-of-list/donghyeon95.java @@ -0,0 +1,37 @@ +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Queue; + +/** + * 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 removeNthFromEnd(ListNode head, int n) { + ArrayList list = new ArrayList<>(); + ListNode nhead = head; + + while (nhead != null) { + list.add(nhead); + nhead = nhead.next; + } + + int size = list.size(); + + if (size == n) { + return head.next; + } + + list.get(size - n - 1).next = list.get(size - n).next; + + return head; + } +} +