Skip to content

Instantly share code, notes, and snippets.

@Desolve
Desolve / 0089 Gray Code.py
Created July 9, 2019 11:06
0089 Gray Code
class Solution:
def grayCode(self, n: int) -> List[int]:
res = [0]
add = 1
for _ in range(n):
for i in range(add):
res.append(res[add - 1 - i] | add);
add <<= 1
return res
@Desolve
Desolve / 0089 Gray Code.java
Created July 9, 2019 11:06
0089 Gray Code
class Solution {
public List<Integer> grayCode(int n) {
List<Integer> res = new ArrayList<>();
res.add(0);
if (n > 0) {
int adder = 1;
for (int i = 1; i <= n; i++) {
int len = res.size();
for (int j = len - 1; j >= 0; j--) {
res.add(res.get(j) + adder);
@Desolve
Desolve / 0092 Reverse Linked List II.java
Created July 10, 2019 16:39
0092 Reverse Linked List II
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseBetween(ListNode head, int m, int n) {
@Desolve
Desolve / 0092 Reverse Linked List II.py
Created July 10, 2019 16:53
0092 Reverse Linked List II
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
if m == n: return head
st = []
left, node = None, head
@Desolve
Desolve / 0100 Same Tree.py
Created July 12, 2019 12:26
0100 Same Tree
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if not p and not q: return True
@Desolve
Desolve / 0100 Same Tree.java
Last active July 12, 2019 12:26
0100 Same Tree
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
@Desolve
Desolve / 0101 Symmetric Tree_Recursive.java
Created July 13, 2019 11:13
0101 Symmetric Tree_Recursive
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
@Desolve
Desolve / 0101 Symmetric Tree_Recursive.py
Created July 13, 2019 11:23
0101 Symmetric Tree_Recursive
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if not root: return True
@Desolve
Desolve / 0101 Symmetric Tree_Iterative.java
Created July 13, 2019 12:05
0101 Symmetric Tree_Iterative
class Solution {
public boolean isSymmetric(TreeNode root) {
Queue<TreeNode> q = new LinkedList<>();
if (root == null) return true;
q.offer(root.left);
q.offer(root.right);
while (!q.isEmpty()) {
TreeNode l = q.poll();
TreeNode r = q.poll();
if (l == null && r == null) continue;
@Desolve
Desolve / 0101 Symmetric Tree_Iterative.py
Created July 13, 2019 12:15
0101 Symmetric Tree_Iterative
from collections import deque
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if not root: return True
queue = deque([(root.left, root.right)])
while queue:
node1, node2 = queue.popleft()
if not node1 and not node2:
continue
if node1 and node2 and node1.val == node2.val: