当前位置: 首页 > news >正文

台州企业网站建设广西南宁做网站的公司

台州企业网站建设,广西南宁做网站的公司,直播视频app,多点网络网站制作系统Problem: 114. 二叉树展开为链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 1.展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左…

Problem: 114. 二叉树展开为链表

文章目录

  • 题目描述
  • 思路
  • 解题方法
  • 复杂度
  • Code

题目描述

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

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

在这里插入图片描述
在这里插入图片描述

思路

我们易知,树与链表两种数据结构都可以通过指针操作来实现,换一句说两种数据结构都可以归结为一种链式数据结构只不过一般情况下,一般普通链表每一个节点后都只有一个next指针;一般的二叉树每个节点后都会有两个指针left指针和right指针,所以我们即可想到使用一个树来模拟实现链表!!!

image.png

1.创建虚拟头节点和尾指针,尾指针初始化指向虚拟头节点。
2.每次遍历过程中将上一节点的right指针指向当前节点,上一节点的left指针置为null
image.png

解题方法

1.创建虚拟头节点和尾指针,尾指针初始化指向虚拟头节点。
2.编写辅助的前序遍历函数,每次先取出当前节点的左右子树,再将每次按先序遍历的到的节点添加到尾指针后

复杂度

时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( 1 ) O(1) O(1)

Code

/*** 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 {//创建虚拟头节点private TreeNode dummyHead = new TreeNode();//创建尾指针private TreeNode tail = dummyHead;/*** 将一个二叉树展开为一个单链表** @param root 树的根节点*/public void flatten(TreeNode root) {preOrder(root);}/*** 先序遍历,将每次遍历到的节点添加到链表中** @param root 树的根节点*/private void preOrder(TreeNode root) {if (root == null) {return;}//先取出当前节点的左右节点TreeNode leftNode = root.left;TreeNode rightNode = root.right;//把遍历到的节点放在链表中tail.right = root;tail = root;tail.left = null;preOrder(leftNode);preOrder(rightNode);}}
http://www.hkea.cn/news/687356/

相关文章:

  • 给企业做网站的公司品牌整合营销传播
  • 互联网技术应用学什么杭州优化建筑设计
  • 重庆网站建设要点襄阳seo优化排名
  • 哪个网站用织梦做的seo站长工具查询系统
  • 本地wordpress 上传搜索引擎优化简历
  • 个人创业做网站软文营销怎么写
  • wordpress相册点击弹出框金华seo全网营销
  • 郑州手机网站建设搜狗网站收录提交入口
  • 清风网站建设抖音推广方式有哪些
  • 工作室网站开发广东网站seo营销
  • 广州正佳广场攻略深圳债务优化公司
  • 如何自己免费建网站seo网站有哪些
  • 南昌网站建设案例如何制作自己的链接
  • wordpress大流量专业的网站优化公司
  • 做进口零食批发网站百度站长管理平台
  • 网站栏目建设存在的问题关键词简谱
  • 网站备案怎么那么麻烦google chrome 网络浏览器
  • 小米手机做网站服务器nba东西部最新排名
  • 做写字楼用哪个网站更好郑州seo代理外包
  • 做网站 淘宝营销策划思路
  • 网页设计要用到什么软件聊城seo优化
  • 用wordpress做网站百度推广管理
  • 一个空间可以放两个网站吗html模板网站
  • 做试用网站的原理网站推广优化平台
  • 软件工程培训机构学费亚马逊seo什么意思
  • 做恶搞网站软件有哪些苏州seo怎么做
  • 怎么做微信小说网站企业网络营销策划方案
  • 网站后台上传图片失败百度下载免费安装最新版
  • 镇江做网站需要多少钱企业网站模板设计
  • 西安seo优化系统网页seo