博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】Flatten Binary Tree to Linked List
阅读量:5025 次
发布时间:2019-06-12

本文共 1801 字,大约阅读时间需要 6 分钟。

随笔一记,留做重温!

 

Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place.

For example,

Given

1        / \       2   5      / \   \     3   4   6

The flattened tree should look like:

1    \     2      \       3        \         4          \           5            \             6 第一个想法是先序遍历,然后按照访问顺序,添加右结点。
public static void flatten(TreeNode root) {        if(root==null){            return ;        }        TreeNode temp=root;        Queue
queue=new LinkedList<>(); queue.add(root); while(!queue.isEmpty()){ TreeNode topNode=queue.poll(); if(topNode.left!=null){ queue.add(topNode.left); } if(topNode.right!=null){ queue.add(topNode.right); } topNode.left=null; topNode.right=null; temp.right=topNode; temp.left=null; temp=temp.right; } }

 

 

 结果空间复杂度太高。然后我们参照网上给出的一种思路。

将树拆开。root,root.left(左子树),root.right(右子树)3部分,然后将右子树接在左子树的最右结点(右指针)上。同时,使得root的right指向root.left

root.left=null

root=root.right(下一个过程,循环)

public static void flatten2(TreeNode root) {        if(root==null){            return ;        }        while(root!=null){            TreeNode leftTreeNode=root.left;            TreeNode rightTreeNode=root.right;            if(leftTreeNode!=null){                TreeNode rightmosTreeNode=leftTreeNode;                while(rightmosTreeNode.right!=null){                    rightmosTreeNode=rightmosTreeNode.right;                }                rightmosTreeNode.right=rightTreeNode;                root.right=leftTreeNode;            }            root.left=null;            root=root.right;        }            }

 

转载于:https://www.cnblogs.com/hitkb/p/4242204.html

你可能感兴趣的文章
《数据挖掘与数据化运营实战 思路、方法、技巧与应用》—— 读书笔记
查看>>
office note 解决标签页消失的问题
查看>>
现代密码学:RSA算法
查看>>
Core Image 制作自己的美图秀秀
查看>>
每天一个随笔
查看>>
-------------------python博客目录:-------------------
查看>>
【CSS3】用i标签用作小图标
查看>>
ecshop 网站
查看>>
随机森林(Random Forest)
查看>>
SQL数据库约束
查看>>
当今世界最为经典的十大算法--投票进行时
查看>>
SpringMVC(十六) 处理模型数据之SessionAttributes
查看>>
阅读笔记01
查看>>
mysql设置有外键的主键自增及其他
查看>>
laravel常用函数大全Helper
查看>>
poj2299 Ultra-QuickSort
查看>>
第三部分shell编程3(shell脚本2)
查看>>
一个基于jQuery的移动端条件选择查询插件(原创)
查看>>
C# Winform 自适应
查看>>
IE阻止个别AC插件的原因及解决办法
查看>>