/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func flatten(root *TreeNode) {
nodes :=PreOrder(root)
i:=1
p :=root
root.Left =nil
for ;i<len(nodes);i++{
p.Left =nil
p.Right = nodes[i]
p = p.Right
}
}
func PreOrder(node *TreeNode) []*TreeNode{
var nodes []*TreeNode
if node !=nil{
nodes = append(nodes,node)
//....
nodes = append(nodes,PreOrder(node.Left)...)
nodes = append(nodes,PreOrder(node.Right)...)
}
return nodes
}
二叉树展开为链表 golang
最新推荐文章于 2025-12-03 18:13:05 发布
本文介绍了一种将二叉树转换为链表的方法。通过先进行预序遍历获取节点序列,然后重新链接各节点的方式,使得二叉树结构变为单一链表,每个节点的左指针置空,右指针指向下一个节点。


252

被折叠的 条评论
为什么被折叠?



