114. 二叉树展开为链表 --力扣 --JAVA

简介: ​给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。​

 题目

给你二叉树的根结点 root ,请你将它展开为一个单链表:

    • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null
    • 展开后的单链表应该与二叉树 先序遍历 顺序相同。

    解题思路

      1. 通过递归先序遍历树;
      2. 用List存储遍历后的结点;
      3. 遍历List重组链表。

      代码展示

      class Solution {
          private List<TreeNode> list = new ArrayList<>();
          public void flatten(TreeNode root) {
              if(root == null){
                  return;
              }
              nextNode(root);
              root = list.get(0);
              TreeNode temp = root;
              for (int i = 1; i < list.size(); i++){
                  temp.left = null;
                  temp.right = list.get(i);
                  temp = temp.right;
              }
              System.out.println(123);
          }
          public void nextNode(TreeNode root){
              if(root == null){
                  return;
              }
              list.add(root);
              nextNode(root.left);
              nextNode(root.right);
          }
      }

      image.gif


      目录
      相关文章
      |
      6天前
      leetcode代码记录(二叉树的所有路径
      leetcode代码记录(二叉树的所有路径
      12 0
      |
      1天前
      |
      算法
      数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)(下)
      数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)
      7 1
      |
      1天前
      |
      算法 C++
      数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)(上)
      数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)
      7 1
      |
      6天前
      LeetCode链表hard 有思路?但写不出来?
      LeetCode链表hard 有思路?但写不出来?
      |
      6天前
      |
      索引
      每日一题:力扣328. 奇偶链表
      每日一题:力扣328. 奇偶链表
      14 4
      |
      6天前
      leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
      leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
      8 0
      |
      6天前
      leetcode代码记录(二叉树的最小深度
      leetcode代码记录(二叉树的最小深度
      10 0
      |
      6天前
      leetcode代码记录(二叉树的最大深度
      leetcode代码记录(二叉树的最大深度
      9 0
      |
      6天前
      leetcode代码记录(翻转二叉树
      leetcode代码记录(翻转二叉树
      8 0
      |
      6天前
      leetcode代码记录(二叉树的层序遍历
      leetcode代码记录(二叉树的层序遍历
      12 0

      热门文章

      最新文章