题目一:二叉树展开为链表
按照前序的顺序将二叉树展开为链表。考虑将右子树放在左子树的最右侧节点下,沿着左节点依次展开。
// 114. 二叉树展开为链表
func flatten(root *TreeNode) {
for root != nil {
if root.Left != nil {
pre := root.Left
for pre.Right != nil {
pre = pre.Right
}
pre.Right = root.Right
root.Right = root.Left
root.Left = nil
}
root = root.Right
}
}
时间复杂度:O(S),空间复杂度O(1)