二叉树遍历——中序遍历(Golang)

简介

中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游。

定义

在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回,否则:(1)中序遍历左子树(2)访问根结点(3)中序遍历右子树
二叉树遍历——中序遍历(Golang)_第1张图片
如图所示二叉树,中序遍历结果:DBEAFC

Golang实现

func (root *TreeNode) inorder()[]int{
    res:=[]int{}
    if root==nil{
        return res
    }
    stack:=[]*TreeNode{}
    for root!=nil || len(stack)!=0{
        if root!=nil{
            stack=append(stack,root)
            root=root.Lchild
        }else{
            root=stack[len(stack)-1]
            res=append(res,root.data)
            stack=stack[:len(stack)-1]
            root=root.Rchild
        }
    }
    return res
}

你可能感兴趣的:(二叉树遍历golang)