114. Flatten Binary Tree to Linked List(Medium)

Posted zzb666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了114. Flatten Binary Tree to Linked List(Medium)相关的知识,希望对你有一定的参考价值。

技术图片

 

这题需要找到规律:前序遍历

第一想法是新建一个TreeNode t,在前序遍历root的同时,不断在t的右节点新建。此方法确实可行,但是原题返回是void空,说明只能在原结构上操作。

 

正确解法:

既然iterative的方法不行,那么就试试recursive。

因为recursive是反的,所以遍历顺序为right, left, root,从最右边开始建,运用临时变量TreeNode pre指向之前的节点,然后root.right = pre,递归直到原始root

class Solution {
    TreeNode pre = null;
    public void flatten(TreeNode root) {
        if(root == null) return;
        flatten(root.right);
        flatten(root.left);
root.right
= pre; root.left = null; pre = root; } }

以上是关于114. Flatten Binary Tree to Linked List(Medium)的主要内容,如果未能解决你的问题,请参考以下文章

114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List

!!!!!!114. Flatten Binary Tree to Linked List

LeetCode 114. Flatten Binary Tree to Linked List