fix(tree): make go code as consistent as possible with java code
This commit is contained in:
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…
Reference in New Issue
Block a user