fix(tree): make go code as consistent as possible with java code

pull/29/head
reanon 2 years ago
parent e62d663630
commit 913cf38d0b

@ -7,7 +7,7 @@ package chapter_tree
import "testing" import "testing"
func TestBinarySearchTree(t *testing.T) { func TestBinarySearchTree(t *testing.T) {
nums := []int{8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6, 7} nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
bst := NewBinarySearchTree(nums) bst := NewBinarySearchTree(nums)
t.Log("初始化的二叉树为: ") t.Log("初始化的二叉树为: ")
bst.Print() bst.Print()
@ -32,9 +32,6 @@ func TestBinarySearchTree(t *testing.T) {
bst.Remove(1) bst.Remove(1)
t.Log("删除结点 1 后的二叉树为: ") t.Log("删除结点 1 后的二叉树为: ")
bst.Print() bst.Print()
bst.Remove(12)
t.Log("删除结点 12 后的二叉树为: ")
bst.Print()
bst.Remove(2) bst.Remove(2)
t.Log("删除结点 2 后的二叉树为: ") t.Log("删除结点 2 后的二叉树为: ")
bst.Print() bst.Print()

@ -9,9 +9,6 @@ import (
"fmt" "fmt"
) )
// nodeNotExist represents node don't exist.
const nodeNotExist int = -1
type TreeNode struct { type TreeNode struct {
Val int Val int
Left *TreeNode Left *TreeNode
@ -54,11 +51,11 @@ func ArrayToTree(arr []int) *TreeNode {
} }
// TreeToArray Serialize a binary tree to a list // TreeToArray Serialize a binary tree to a list
func TreeToArray(root *TreeNode) []int { func TreeToArray(root *TreeNode) []any {
if root == nil { if root == nil {
return []int{} return []any{}
} }
arr := make([]int, 0) arr := make([]any, 0)
queue := list.New() queue := list.New()
queue.PushBack(root) queue.PushBack(root)
for queue.Len() > 0 { for queue.Len() > 0 {
@ -68,7 +65,8 @@ func TreeToArray(root *TreeNode) []int {
queue.PushBack(node.Left) queue.PushBack(node.Left)
queue.PushBack(node.Right) queue.PushBack(node.Right)
} else { } else {
arr = append(arr, nodeNotExist) // node don't exist.
arr = append(arr, nil)
} }
} }
return arr return arr

Loading…
Cancel
Save