Skip to content

Instantly share code, notes, and snippets.

View cixuuz's full-sized avatar
💭
Vibe Coding

cixuuuuuuuuz cixuuz

💭
Vibe Coding
View GitHub Profile
@cixuuz
cixuuz / 250_0824.java
Created August 24, 2017 15:20
[250. Count Univalue Subtrees] #leetcode
class Solution {
// O(n) O(n)
private int count = 0;
public int countUnivalSubtrees(TreeNode root) {
unival(root, 0);
return count;
}
private boolean unival(TreeNode node, int val) {
@cixuuz
cixuuz / 111_0823.java
Created August 23, 2017 22:31
[111. Minimum Depth of Binary Tree] #leetcode
class Solution {
// O(n) O(n/h)
public int minDepth(TreeNode root) {
if (root == null) return 0;
int left = minDepth(root.left);
int right = minDepth(root.right);
return (left == 0 || right == 0) ? left + right + 1: Math.min(left, right) + 1;
}
}
@cixuuz
cixuuz / 95_0823.java
Last active August 23, 2017 22:07
[95. Unique Binary Search Trees II] #leetcode
class Solution {
// O(n^2) O(n^2)
public List<TreeNode> generateTrees(int n) {
if (n == 0) return new ArrayList<TreeNode>();
return genTree(1, n);
}
private List<TreeNode> genTree(int start, int end) {
List<TreeNode> list = new ArrayList<>();
@cixuuz
cixuuz / 337_0823.java
Last active August 23, 2017 19:55
[337. House Robber III] #leetcode
class Solution {
// O(n^2) O(n)
public int rob(TreeNode root) {
return dfs(root, false);
}
public int dfs(TreeNode node, Boolean robbed) {
if ( node == null ) return 0;
int rob_node = 0, not_rob_node = 0;
if (robbed) {
@cixuuz
cixuuz / 145_0822.java
Last active August 23, 2017 01:50
[145. Binary Tree Postorder Traversal] #leetcode
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
LinkedList<Integer> result = new LinkedList<Integer>();
TreeNode curNode = root;
Deque<TreeNode> stack = new ArrayDeque<TreeNode>();
while ( !stack.isEmpty() || curNode != null ) {
if (curNode != null) {
stack.push(curNode);
result.addFirst(curNode.val);
@cixuuz
cixuuz / 144_0822.java
Created August 22, 2017 22:35
[144. Binary Tree Preorder Traversal] #leetcode
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<Integer>();
Stack<TreeNode> stack = new Stack<TreeNode>();
TreeNode curNode = root;
while ( !stack.isEmpty() || curNode != null) {
if (curNode != null) {
result.add(curNode.val);
stack.push(curNode);
@cixuuz
cixuuz / 94_0822.java
Created August 22, 2017 21:59
[94. Binary Tree Inorder Traversal] #leetcode
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<Integer>();
Stack<TreeNode> stack = new Stack<TreeNode>();
while ( !stack.isEmpty() || root != null ) {
if ( root != null ) {
stack.push(root);
root = root.left;
} else {
@cixuuz
cixuuz / 230_0822.java
Last active August 22, 2017 21:47
[230. Kth Smallest Element in a BST] #leetcode
class Solution {
private Integer result;
private Integer count = 0;
public int kthSmallest(TreeNode root, int k) {
dfs(root, k);
return result;
}
public void dfs(TreeNode node, int k) {
@cixuuz
cixuuz / 199_0822.java
Last active August 22, 2017 15:55
[199. Binary Tree Right Side View] #leetcode
class Solution {
public List<Integer> rightSideView(TreeNode root) {
List<Integer> res = new ArrayList<Integer>();
if (root == null) return res;
Deque<TreeNode> dq = new LinkedList<TreeNode>();
dq.addLast(root);
while (!dq.isEmpty()) {
res.add(dq.peekLast().val);
@cixuuz
cixuuz / 114.java
Last active August 22, 2017 15:02
[114. Flatten Binary Tree to Linked List] #leetcode
class Solution {
public void flatten(TreeNode root) {
while (root != null) {
TreeNode rightNode = root.right;
root.right = root.left;
root.left = null;
// find rightmost node
TreeNode node = root;
while (node.right != null) {
node = node.right;