目录

leetcode-hot-100-114二叉树展开为链表

【leetcode hot 100 114】二叉树展开为链表

解法一:执行一次先序遍历,把元素放入list中,然后放回root中

/**

  • Definition for a binary tree node.
  • public class TreeNode {
  • int val;
  • TreeNode left;
  • TreeNode right;
  • TreeNode() {}
  • TreeNode(int val) { this.val = val; }
  • TreeNode(int val, TreeNode left, TreeNode right) {
  • this.val = val;
  • this.left = left;
  • this.right = right;
  • }
  • } */ class Solution { List list = new ArrayList<>(); public void flatten(TreeNode root) { // 执行一次先序遍历,把元素放入list中,然后放回root中 preorder(root); TreeNode pre = root; for(int i=1;i<list.size();i++){ pre.right = list.get(i); pre.left = null; pre = pre.right; } } public void preorder(TreeNode root){ if(root==null){ return; } list.add(root); preorder(root.left); preorder(root.right); } }