File tree Expand file tree Collapse file tree 2 files changed +97
-0
lines changed
remove-nth-node-from-end-of-list Expand file tree Collapse file tree 2 files changed +97
-0
lines changed Original file line number Diff line number Diff line change 1+ import java .util .ArrayDeque ;
2+ import java .util .ArrayList ;
3+ import java .util .Arrays ;
4+ import java .util .Queue ;
5+
6+ /**
7+ * Definition for singly-linked list.
8+ * public class ListNode {
9+ * int val;
10+ * ListNode next;
11+ * ListNode() {}
12+ * ListNode(int val) { this.val = val; }
13+ * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
14+ * }
15+ */
16+ class Solution {
17+ public ListNode removeNthFromEnd (ListNode head , int n ) {
18+ ArrayList <ListNode > list = new ArrayList <>();
19+ ListNode nhead = head ;
20+
21+ while (nhead != null ) {
22+ list .add (nhead );
23+ nhead = nhead .next ;
24+ }
25+
26+ int size = list .size ();
27+
28+ if (size == n ) {
29+ return head .next ;
30+ }
31+
32+ list .get (size - n - 1 ).next = list .get (size - n ).next ;
33+
34+ return head ;
35+ }
36+ }
37+
Original file line number Diff line number Diff line change 1+ import java .util .LinkedList ;
2+ import java .util .Queue ;
3+
4+ /**
5+ * Definition for a binary tree node.
6+ * public class TreeNode {
7+ * int val;
8+ * TreeNode left;
9+ * TreeNode right;
10+ * TreeNode() {}
11+ * TreeNode(int val) { this.val = val; }
12+ * TreeNode(int val, TreeNode left, TreeNode right) {
13+ * this.val = val;
14+ * this.left = left;
15+ * this.right = right;
16+ * }
17+ * }
18+ */
19+ class Solution {
20+ public boolean isSameTree (TreeNode p , TreeNode q ) {
21+ // 트리 순회를 한다
22+ // 현재 순회한 값이 다르다면 return false
23+ if (p ==null && q ==null ) return true ;
24+ if (p ==null && q !=null ) return false ;
25+ if (p !=null && q ==null ) return false ;
26+
27+ Queue <TreeNode > pQue = new LinkedList <>();
28+ pQue .add (p );
29+ Queue <TreeNode > qQue = new LinkedList <>();
30+ qQue .add (q );
31+
32+ while (!pQue .isEmpty () && !qQue .isEmpty ()) {
33+ TreeNode pNode = pQue .poll ();
34+ TreeNode qNode = qQue .poll ();
35+
36+ if (pNode .val != qNode .val ) return false ;
37+ if (pNode .left !=null && qNode .left !=null ) {
38+ pQue .add (pNode .left );
39+ qQue .add (qNode .left );
40+ } else if (pNode .left ==null && qNode .left !=null ) {
41+ return false ;
42+ } else if (pNode .left !=null && qNode .left ==null ) {
43+ return false ;
44+ }
45+
46+ if (pNode .right !=null && qNode .right !=null ) {
47+ pQue .add (pNode .right );
48+ qQue .add (qNode .right );
49+ } else if (pNode .right ==null && qNode .right !=null ) {
50+ return false ;
51+ } else if (pNode .right !=null && qNode .right ==null ) {
52+ return false ;
53+ }
54+ }
55+
56+ return pQue .isEmpty () && qQue .isEmpty ();
57+
58+ }
59+ }
60+
You can’t perform that action at this time.
0 commit comments