041_二叉树展开为单链表

知识点:前序遍历、二叉树、链表

LeetCode第一百一十四题:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/submissions/

语言:GoLang

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
 var queue []*TreeNode
func flatten(root *TreeNode) {
    if root == nil {
        return
    }

    queue = []*TreeNode{}
    traverse(root)

    for i := 0; i < len(queue) - 1; i++ {
        queue[i].Right = queue[i + 1]
        queue[i].Left = nil
    }
}

func traverse(root *TreeNode) {
    if root == nil {
        return
    }
    queue = append(queue, root)
    traverse(root.Left)
    traverse(root.Right)
}
posted @ 2020-03-29 17:17  Cenyol  阅读(84)  评论(0)    收藏  举报