binary

package
v0.0.0-...-ec16908 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Example
// Leetcode
// 226. 翻转二叉树
// 期望输入 [4,2,7,1,3,6,9]
// 期望输出 [4,7,2,9,6,3,1]

var invertTree func(root *TreeNode) *TreeNode
invertTree = func(root *TreeNode) *TreeNode {
	if root == nil {
		return root
	}
	root.Left, root.Right = root.Right, root.Left
	invertTree(root.Left)
	invertTree(root.Right)

	return root
}

// 定义输入切片
nums := []int{4, 2, 7, 1, 3, 6, 9}
// 实际输入
actualInput := Format2Leetcode(nums)
fmt.Println("实际输入:", actualInput)

// 反序列化为二叉树结构
root := Unmarshal(nums)
// 翻转二叉树算法函数实现
invertRoot := invertTree(root)
// 序列化二叉树为切片
invertNums := Marshal(invertRoot)

// 实际输出
actualOutput := Format2Leetcode(invertNums)
fmt.Println("实际输出:", actualOutput)
Output:


实际输入: [4,2,7,1,3,6,9]
实际输出: [4,7,2,9,6,3,1]

Index

Examples

Constants

View Source
const Null int = math.MinInt32

Null 自定义类型`Null[MinInt32]`标识的元素解释为nil节点

Variables

This section is empty.

Functions

func Depth

func Depth(root *TreeNode) int

Depth 获取二叉树最大深度

func Format2Leetcode

func Format2Leetcode(nums []int) string

Format2Leetcode 根据 Leetcode 测试用例的输入/输出数据格式进行格式化

func Marshal

func Marshal(root *TreeNode) (res []int)

Marshal 将标准二叉树结构对象序列化为整形切片,其中nil节点会按自定义类型`Null[MinInt32]`标识

Types

type TreeNode

type TreeNode struct {
	Val   int       `json:"val"`
	Left  *TreeNode `json:"left,omitempty"`
	Right *TreeNode `json:"right,omitempty"`
}

TreeNode Definition for a binary tree node

func Unmarshal

func Unmarshal(nums []int) *TreeNode

Unmarshal 将整形切片反序列化为标准二叉树结构对象,其中自定义类型`Null[MinInt32]`标识的元素解释为nil节点

输入:nums = [5,4,8,11,null,13,4,7,2,null,null,5,1]

输出(图形化结构):

       5
     /   \
    4     8
   / \   / \
  11 nl 13  4
 / \   / \  / \
7   2 nl nl 5  1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL