码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-01-19 11:40:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!