public void TestPostorderTraversal() { var root = TreeNode.BuildBSTFromArray(new int[] { 3, 5, 8, 4, 1, 2, 9 }); var r = BinaryTreeTravle.PostorderTraversal_recursive(root); Assert.AreEqual(r[0], 2); Assert.AreEqual(r[3], 9); Assert.AreEqual(r[6], 3); root = TreeNode.BuildBSTFromArray(new int[] { 6, 3, 8, 4, 1, 2, 7 }); r = BinaryTreeTravle.PostorderTraversal_Iterations(root); Assert.AreEqual(r[0], 2); Assert.AreEqual(r[3], 3); Assert.AreEqual(r[6], 6); }
public void TestZigzagLevelOrderTraversal() { var root = new TreeNode(3); root.Left = new TreeNode(9); root.Right = new TreeNode(20); root.Right.Left = new TreeNode(15); root.Right.Right = new TreeNode(7); var r = BinaryTreeTravle.AddZigzagLevelOrderTraversal(root); Assert.AreEqual(r.Count, 3); Assert.AreEqual(r[1][0], 20); Assert.AreEqual(r[2][0], 15); }
public void TestFlattenBinaryTreeToLinkedList() { var root = new TreeNode(1); root.Left = new TreeNode(2); root.Right = new TreeNode(5); root.Left.Left = new TreeNode(3); root.Left.Right = new TreeNode(4); root.Right.Right = new TreeNode(6); BinaryTreeTravle.FlattenBinaryTreeToLinkedList(root); Assert.AreEqual(root.Val, 1); Assert.AreEqual(root.Right.Val, 2); Assert.AreEqual(root.Right.Right.Right.Val, 4); Assert.AreEqual(root.Right.Right.Right.Right.Right.Val, 6); }
public void TestLevelOrderTraversal() { var root = new TreeNode(3); root.Left = new TreeNode(9); root.Right = new TreeNode(20); root.Right.Left = new TreeNode(15); root.Right.Right = new TreeNode(7); var r = BinaryTreeTravle.LevelOrderTraversal_loop(root); Assert.AreEqual(r.Count, 3); Assert.AreEqual(r[2][0], 15); Assert.AreEqual(r[1][1], 20); r = BinaryTreeTravle.LevelOrderTraversal_recursive(root); Assert.AreEqual(r.Count, 3); Assert.AreEqual(r[2][0], 15); Assert.AreEqual(r[1][1], 20); }
public void TestInorderTraversal() { var root = TreeNode.BuildBSTFromArray(new int[] { 3, 5, 8, 4, 1, 2, 9 }); var r = BinaryTreeTravle.InorderTraversal_Recursive(root); Assert.AreEqual(r[0], 1); Assert.AreEqual(r[3], 4); Assert.AreEqual(r[6], 9); root = TreeNode.BuildBSTFromArray(new int[] { 3, 5, 8, 4, 1, 2, 7 }); r = BinaryTreeTravle.InorderTraversal_Stack(root); Assert.AreEqual(r[0], 1); Assert.AreEqual(r[3], 4); Assert.AreEqual(r[6], 8); root = TreeNode.BuildBSTFromArray(new int[] { 6, 3, 8, 4, 1, 2, 7 }); r = BinaryTreeTravle.InorderTraversal_Morris(root); Assert.AreEqual(r[0], 1); Assert.AreEqual(r[3], 4); Assert.AreEqual(r[6], 8); }