加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

leetcode [114]Flatten Binary Tree to Linked List

发布时间:2020-12-14 04:33:38 所属栏目:大数据 来源:网络整理
导读:题目大意: 将一个二叉树变为一个链表 解法: 这道题目输出结果就是采用前序遍历二叉树的结果,将这个结果变为一个双向链表。但是题目的要求是在原数据结构上进行改变,而不是采用前序遍历的结果新建一个链表。这道题目剑指offer上面也有,做过很多次,但是

题目大意:

将一个二叉树变为一个链表

解法:

这道题目输出结果就是采用前序遍历二叉树的结果,将这个结果变为一个双向链表。但是题目的要求是在原数据结构上进行改变,而不是采用前序遍历的结果新建一个链表。这道题目剑指offer上面也有,做过很多次,但是记不得,最讨厌做树相关的题目了。

参考了一下网上的解法,看起来还是很容易理解的,就是将左右子树递归的变成链表,再和当前节点相连接。但是感觉自己很难想出来。

解法主要是下面三步:

1.将左子树转换成链表

2.将右子树转换成链表

3.将当前节点的左指针指向空,右节点指向leftList.head,然后将leftList.end指向rightList.head。

java:

class Solution {
    public void flatten(TreeNode root) {
        if(root==null) return;
        TreeNode left=root.left;
        TreeNode right=root.right;
        
        flatten(left);
        flatten(right);
        
        root.left=null;
        root.right=left;
        TreeNode cur=root;
        while(cur.right!=null) cur=cur.right;
        cur.right=right;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读