Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First round of converted samples #6

Merged
merged 52 commits into from
Aug 13, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7f61067
Adding to BigIntMod python code
vprusso Jun 28, 2019
d1ad539
Adding FindDuplicates python code
vprusso Jun 28, 2019
6732f06
Adding IntToRoman python
vprusso Jun 28, 2019
7ce9b4b
Rename to be consistent
vprusso Jun 28, 2019
2b1be53
Adding LinkedListCycle
vprusso Jun 28, 2019
23bf9de
Adding NthToLast Python code
vprusso Jun 28, 2019
5f97fbc
Added ZeroMatrix Python file
vprusso Jun 28, 2019
bc5daf7
Adding to ConsecutiveArray Python file
vprusso Jun 29, 2019
bc29339
Adding to BuildOrder Python file
vprusso Jul 1, 2019
3264df1
Adding to Python solutions
vprusso Jul 3, 2019
1b46d29
Update to README
vprusso Jul 3, 2019
20a791b
Adding to README
vprusso Jul 3, 2019
4ff2e40
Adding to README
vprusso Jul 3, 2019
439e265
Adding Knapsack to code
vprusso Jul 6, 2019
aa910e7
Updated README
vprusso Jul 6, 2019
b40e81d
Added to README
vprusso Jul 6, 2019
d3e8213
Updating README file
vprusso Jul 6, 2019
75803d6
Updating README
vprusso Jul 6, 2019
90d3380
Adding to README
vprusso Jul 6, 2019
e430ca1
Adding CPP FizzBuzz
vprusso Jul 6, 2019
80237f4
Updates to readme
vprusso Jul 6, 2019
ce3d44d
Adding Java FizzBuzz
vprusso Jul 7, 2019
645eb31
Adding Ones Binary in Python and Java
vprusso Jul 7, 2019
1fc57cf
Adding to README
vprusso Jul 7, 2019
31a700e
Adding to Anagrams and OnesInBinary
vprusso Jul 9, 2019
40cb86b
Updates to README
vprusso Jul 9, 2019
f87536f
Adding to String Deletion
vprusso Jul 9, 2019
ec20fd4
Adding Sum problem for Python and Java
vprusso Jul 11, 2019
cd02973
Adding to Fibonacci for Python and Java
vprusso Jul 11, 2019
f97743c
Adding CPP for Fibonacci
vprusso Jul 11, 2019
8422507
Adding to smallest change for Java and Python
vprusso Jul 11, 2019
9cb7b5d
t
vprusso Jul 11, 2019
505ff75
Adding to Swap variables for all CPP,Python, and Java
vprusso Jul 11, 2019
4a329e8
Adding to ClockAngle code
vprusso Jul 11, 2019
160cbb1
IntToRoman C++
vprusso Jul 18, 2019
367653f
Adding to dedup linked list
vprusso Jul 19, 2019
5beac7b
Adding to dedup linked list
vprusso Jul 21, 2019
bda4e27
Adding to Random linked list
vprusso Jul 22, 2019
262f3a9
Adding to FindDuplicates for C++
vprusso Jul 25, 2019
f03af31
Adding to Two Missing
vprusso Jul 25, 2019
bccd4f4
Adding to ReverseStack for Java and Python
vprusso Jul 31, 2019
0ec613f
Adding to ReverseStack
vprusso Aug 1, 2019
4ed5c47
Adding to Gray Code
vprusso Aug 1, 2019
8b2a18b
Adding to PrintReversedLsit
vprusso Aug 1, 2019
70e366a
Adding to README
vprusso Aug 1, 2019
d6d50e6
Adding to RotateBits
vprusso Aug 2, 2019
ce8e85b
Adding to string compression for Java and Python
vprusso Aug 3, 2019
a62f894
Adding README
vprusso Aug 3, 2019
13775cd
Updates to StringCompression python file
vprusso Aug 4, 2019
5441eb0
Adding to line intersection
vprusso Aug 4, 2019
ccb3f6b
Adding to MaxStack
vprusso Aug 12, 2019
86d8111
Adding to TreeLevelOrder
vprusso Aug 12, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Adding to TreeLevelOrder
  • Loading branch information
vprusso committed Aug 12, 2019
commit 86d8111995fd7238b488ac0ad53994b37bd4d71e
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,9 @@ Write a function that returns all permutations of a given list.
* [N Stacks](http://www.byte-by-byte.com/nstacks/)
Implement N > 0 stacks using a single array to store all stack data (you may use auxiliary arrays in your stack object, but all of the objects in all of the stacks must be in the same array). No stack should be full unless the entire array is full.

* [Tree Level Order](http://www.byte-by-byte.com/treelevelorder/)
* [Tree Level Order](http://www.byte-by-byte.com/treelevelorder/)
([Java](https://github.com/samgh/Byte-by-Byte-Solutions/blob/master/java/TreeLevelOrder.java))
([Python](https://github.com/samgh/Byte-by-Byte-Solutions/blob/master/python/TreeLevelOrder.py))<br>
Given a tree, write a function that prints out the nodes of the tree in level order.

* [Split Linked List](http://www.byte-by-byte.com/splitlinkedlist/)
Expand Down
53 changes: 53 additions & 0 deletions java/TreeLevelOrder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* Title: Tree Level Order
*
* Given a tree, write a function that prints out the nodes of the tree in
* level order.
*
* Execution: javac TreeLevelOrder.java && java TreeLevelOrder
*
* For more details, check out http://www.byte-by-byte.com/fibonacci/
*/

import java.util.Queue;
import java.util.LinkedList;

public class TreeLevelOrder {

private static class Node {
private int value;
private Node left;
private Node right;

private Node(int value) {
this.value = value;
}
}

public static void traverse(Node tree) {
if (tree == null) return;

Queue<Node> toVisit = new LinkedList<Node>();
toVisit.add(tree);

while (!toVisit.isEmpty()) {
Node curr = toVisit.remove();
System.out.println(curr.value);
if (curr.left != null) toVisit.add(curr.left);
if (curr.right != null) toVisit.add(curr.right);
}
}

// Sample test cases
public static void main(String[] args) {
Node n = new Node(1);
n.left = new Node(2);
n.right = new Node(3);
n.left.left = new Node(4);
n.left.right = new Node(5);
n.right.left = new Node(6);
n.right.right = new Node(7);

traverse(n);
}
}
80 changes: 80 additions & 0 deletions python/TreeLevelOrder.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
"""
Title: Tree Level Order.

Given a tree, write a function that prints out the nodes of the tree in level
order.

Execution: python TreeLevelOrder.py

For more details, check out http://www.byte-by-byte.com/treelevelorder

"""
import unittest


class Queue:
def __init__(self):
self.items = []

def enqueue(self, item):
self.items.insert(0, item)

def dequeue(self):
if not self.is_empty():
return self.items.pop()

def is_empty(self):
return len(self.items) == 0

def peek(self):
if not self.is_empty():
return self.items[-1].value

def __len__(self):
return self.size()

def size(self):
return len(self.items)


class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None


def traverse(start):
if start is None:
return

queue = Queue()
queue.enqueue(start)

traversal = []
while len(queue) > 0:
traversal.append(queue.peek())
node = queue.dequeue()

if node.left:
queue.enqueue(node.left)
if node.right:
queue.enqueue(node.right)

return traversal


class TestTreeLevelOrder(unittest.TestCase):
def test_1(self):
n = Node(1)
n.left = Node(2)
n.right = Node(3)
n.left.left = Node(4)
n.left.right = Node(5)
n.right.left = Node(6)
n.right.right = Node(7)
self.assertEqual(traverse(n), [1, 2, 3, 4, 5, 6, 7])


if __name__ == '__main__':
unittest.main()