PYTHON自学

[go语言算法]二叉树层次遍历

2019-12-24  本文已影响0人  Ucan先生
func levelOrder(root *TreeNode) [][]int {
    if (root == nil){
        return [][]int{}
    }
    var quene []*TreeNode
    quene = append(quene,root)
    var res [][]int
    var currentRes []int;
    for len(quene)>0 {
        currentLen := len(quene)
        NewQuene := []*TreeNode{}
        currentRes = []int{}
        for i:=0;i<currentLen;i++{
         
            node := quene[i];
            currentRes = append(currentRes,node.Val);
            if(node.Left!=nil){
                NewQuene  = append(NewQuene,node.Left) 
            }
            if(node.Right!=nil){
                NewQuene = append(NewQuene,node.Right)
            }
        }
        quene = NewQuene
        res = append(res,currentRes)
        }
    return res

    }
上一篇 下一篇

猜你喜欢

热点阅读