Medium | LeetCode 114. 二叉树展开为链表

标签:list   href   使用   baidu   bin   treenode   blank   tco   root   

114. 二叉树展开为链表

给定一个二叉树,原地将它展开为一个单链表。

例如,给定二叉树

    1
   /   2   5
 / \   3   4   6

将其展开为:

1
   2
       3
           4
               5
                   6

方法一:递归先序遍历保存进List

public void flatten(TreeNode root) {
    List<TreeNode> list = new ArrayList<TreeNode>();
    // 先使用递归先序遍历, 将其值保存进List
    preorderTraversal(root, list);
    // 然后遍历List, 将前一个节点和后一个节点串联起来
    int size = list.size();
    for (int i = 1; i < size; i++) {
        TreeNode prev = list.get(i - 1), curr = list.get(i);
        prev.left = null;
        prev.right = curr;
    }
}

public void preorderTraversal(TreeNode root, List<TreeNode> list) {
    if (root != null) {
        list.add(root);
        preorderTraversal(root.left, list);
        preorderTraversal(root.right, list);
    }
}

``

Medium | LeetCode 114. 二叉树展开为链表

标签:list   href   使用   baidu   bin   treenode   blank   tco   root   

原文地址:https://www.cnblogs.com/chenrj97/p/14290740.html

版权声明:完美者 发表于 2021-01-19 11:40:59。
转载请注明:Medium | LeetCode 114. 二叉树展开为链表 | 完美导航

暂无评论

暂无评论...