Leetcode 114. 二叉树展开为链表

题目描述

题目链接:https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/
Leetcode 114. 二叉树展开为链表_第1张图片

思路

  • 先序遍历
  • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 List list = new ArrayList();

代码实现

class Solution {
    List<TreeNode> list = new ArrayList<TreeNode>();
    
    public void flatten(TreeNode root) {
        // 先序遍历
        preOrder(root);
        int size = list.size();
        for(int i =1;i<size;i++){
            TreeNode pre = list.get(i-1), curr = list.get(i);
            pre.left = null;
            pre.right = curr;
        }
    }

    public void preOrder(TreeNode root){
        if(root==null){
            return ;
        }
        list.add(root);
        preOrder(root.left);
        preOrder(root.right);
    }

}

你可能感兴趣的:(Java,leetcode,链表,算法)