LeetCode第114题 二叉树展开为链表

  1. 算法

  2. 核心思想

  3. 代码
    LeetCode第114题 二叉树展开为链表_第1张图片

class Solution {
    public void flatten(TreeNode root) {
        if (root == null) return;
        List<TreeNode> temp = new ArrayList<>();
        dfs(root,temp);
        for (int i = 1; i < temp.size(); ++i) {
            root.left = null;
            root.right = temp.get(i);
            root = root.right;
        }

    }
    void dfs(TreeNode node,List<TreeNode> res){
        res.add(node);
        if(node.left == null && node.right == null){
            return;
        }

        if(node.left != null){
            TreeNode tempNode = node.left;
            dfs(tempNode,res);
        }
        if(node.right != null){
            TreeNode tempNode = node.right;
            dfs(tempNode,res);
        }
    }
}

你可能感兴趣的:(回溯算法,二叉树,深度优先搜索,leetcode,算法,职场和发展)