File tree Expand file tree Collapse file tree 5 files changed +130
-0
lines changed
Expand file tree Collapse file tree 5 files changed +130
-0
lines changed Original file line number Diff line number Diff line change 1+ function TreeNode ( val , left , right ) {
2+ this . val = val === undefined ? 0 : val ;
3+ this . left = left === undefined ? null : left ;
4+ this . right = right === undefined ? null : right ;
5+ }
6+ /**
7+ * @param {TreeNode } root
8+ * @return {TreeNode }
9+ */
10+ var invertTree = function ( root ) {
11+ if ( ! root ) {
12+ return null ;
13+ }
14+
15+ const originLeft = root . left ;
16+ const originRight = root . right ;
17+
18+ root . right = invertTree ( originLeft ) ;
19+ root . left = invertTree ( originRight ) ;
20+
21+ return root ;
22+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val) {
4+ * this.val = val;
5+ * this.next = null;
6+ * }
7+ */
8+
9+ /**
10+ * @param {ListNode } head
11+ * @return {boolean }
12+ */
13+ var hasCycle = function ( head ) {
14+ let fastPointer = head ;
15+ let slowPointer = head ;
16+
17+ while ( fastPointer !== null && slowPointer !== null ) {
18+ fastPointer = fastPointer ?. next ?. next ;
19+ slowPointer = slowPointer ?. next ;
20+
21+ if ( fastPointer === slowPointer ) {
22+ return true ;
23+ }
24+ }
25+
26+ return false ;
27+ } ;
Original file line number Diff line number Diff line change 1+ function ListNode ( val , next ) {
2+ this . val = val === undefined ? 0 : val ;
3+ this . next = next === undefined ? null : next ;
4+ }
5+
6+ /**
7+ * @param {ListNode } list1
8+ * @param {ListNode } list2
9+ * @return {ListNode }
10+ */
11+ var mergeTwoLists = function ( list1 , list2 ) {
12+ const dummy = new ListNode ( ) ;
13+ let current = dummy ;
14+
15+ while ( list1 !== null && list2 !== null ) {
16+ if ( list1 . val < list2 . val ) {
17+ current . next = list1 ;
18+ list1 = list1 . next ;
19+ } else {
20+ current . next = list2 ;
21+ list2 = list2 . next ;
22+ }
23+
24+ current = current . next ;
25+ }
26+
27+ current . next = list1 !== null ? list1 : list2 ;
28+
29+ return dummy . next ;
30+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val, next) {
4+ * this.val = (val===undefined ? 0 : val)
5+ * this.next = (next===undefined ? null : next)
6+ * }
7+ */
8+ /**
9+ * @param {ListNode } head
10+ * @return {ListNode }
11+ */
12+ var reverseList = function ( head ) {
13+ let currentNode = head ;
14+ let previousNode = null ;
15+
16+ while ( currentNode !== null ) {
17+ const nextNode = currentNode . next ;
18+
19+ currentNode . next = previousNode ;
20+ previousNode = currentNode ;
21+ currentNode = nextNode ;
22+ }
23+
24+ return previousNode ;
25+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } s
3+ * @return {boolean }
4+ */
5+ var isValid = function ( s ) {
6+ if ( s . length % 2 !== 0 ) {
7+ return false ;
8+ }
9+
10+ const stack = [ ] ;
11+ const pair = {
12+ ")" : "(" ,
13+ "}" : "{" ,
14+ "]" : "[" ,
15+ } ;
16+
17+ for ( let char of s ) {
18+ if ( pair [ char ] && stack . pop ( ) !== pair [ char ] ) {
19+ return false ;
20+ }
21+
22+ stack . push ( char ) ;
23+ }
24+
25+ return stack . length === 0 ;
26+ } ;
You can’t perform that action at this time.
0 commit comments