File tree 3 files changed +75
-0
lines changed
remove-nth-node-from-end-of-list
3 files changed +75
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * https://leetcode.com/problems/merge-intervals/
3
+ * time complexity : O(n)
4
+ * space complexity : O(n)
5
+ */
6
+
7
+ function merge ( intervals : number [ ] [ ] ) : number [ ] [ ] {
8
+ if ( intervals . length === 0 ) return [ ] ;
9
+
10
+ intervals . sort ( ( a , b ) => a [ 0 ] - b [ 0 ] ) ;
11
+
12
+ const merged : number [ ] [ ] = [ ] ;
13
+ for ( const interval of intervals ) {
14
+ if ( merged . length === 0 || merged [ merged . length - 1 ] [ 1 ] < interval [ 0 ] ) merged . push ( interval ) ;
15
+ else merged [ merged . length - 1 ] [ 1 ] = Math . max ( merged [ merged . length - 1 ] [ 1 ] , interval [ 1 ] ) ;
16
+ }
17
+ return merged ;
18
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * https://leetcode.com/problems/remove-nth-node-from-end-of-list/
3
+ * time complexity : O(n)
4
+ * space complexity : O(1)
5
+ */
6
+
7
+ class ListNode {
8
+ val : number
9
+ next : ListNode | null
10
+ constructor ( val ?: number , next ?: ListNode | null ) {
11
+ this . val = ( val === undefined ? 0 : val )
12
+ this . next = ( next === undefined ? null : next )
13
+ }
14
+ }
15
+
16
+ function removeNthFromEnd ( head : ListNode | null , n : number ) : ListNode | null {
17
+ const dummy = new ListNode ( 0 , head ) ;
18
+ let first : ListNode | null = dummy ;
19
+ let second : ListNode | null = dummy ;
20
+
21
+ for ( let i = 0 ; i <= n ; i ++ ) {
22
+ if ( first !== null ) first = first . next ;
23
+ }
24
+
25
+ while ( first !== null ) {
26
+ first = first . next ;
27
+ second = second ! . next ;
28
+ }
29
+
30
+ if ( second !== null && second . next !== null ) second . next = second . next . next ;
31
+
32
+ return dummy . next ;
33
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * https://leetcode.com/problems/same-tree/
3
+ * time complexity : O(n)
4
+ * space complexity : O(n)
5
+ */
6
+
7
+ class TreeNode {
8
+ val : number
9
+ left : TreeNode | null
10
+ right : TreeNode | null
11
+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
12
+ this . val = ( val === undefined ? 0 : val )
13
+ this . left = ( left === undefined ? null : left )
14
+ this . right = ( right === undefined ? null : right )
15
+ }
16
+ }
17
+
18
+ function isSameTree ( p : TreeNode | null , q : TreeNode | null ) : boolean {
19
+ if ( p === null && q === null ) return true ;
20
+ if ( p === null || q === null ) return false ;
21
+ if ( p . val !== q . val ) return false ;
22
+
23
+ return isSameTree ( p . left , q . left ) && isSameTree ( p . right , q . right ) ;
24
+ } ;
You can’t perform that action at this time.
0 commit comments