把一个二叉树展平成一个链表
借鉴了别人的思路,相当的厉害。
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func flatten(root *TreeNode) {
node := root
for node != nil {
if node.Left != nil {
tmp := node.Left
for tmp.Right != nil {
tmp = tmp.Right
}
tmp.Right = node.Right
node.Right = node.Left
node.Left = nil
}
node = node.Right
}
}