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

网站建设方案模板下载网站模板自建站

网站建设方案模板下载,网站模板自建站,珠海医疗网站建设公司排名,网站建设公司gzzhixun二叉树的Morris(莫里斯)遍历 本文参考链接#xff1a;https://leetcode.cn/problems/binary-tree-preorder-traversal/submissions/490846864/ 文章目录 二叉树的Morris(莫里斯)遍历模板代码前序遍历中序遍历后序遍历 Morris 遍历使用二叉树节点中大量指向 null 的指针…二叉树的Morris(莫里斯)遍历 本文参考链接https://leetcode.cn/problems/binary-tree-preorder-traversal/submissions/490846864/ 文章目录 二叉树的Morris(莫里斯)遍历模板代码前序遍历中序遍历后序遍历 Morris 遍历使用二叉树节点中大量指向 null 的指针时间复杂度O(n)额外空间复杂度O(1)。 Morris 的整体思路就是将 以某个根结点开始找到它左子树的最右侧节点之后与这个根结点进行连接。 我们可以从图中看到连接之后指针是可以完整的从根节点顺着下一个节点遍历将整棵树遍历完毕直到 7 这个节点右侧没有指向。 模板代码 首先介绍morris的模板代码带*的注释表示该行为指定遍历所要增加的内容可以先不管。 模板代码的流程图如下所示 public ListInteger traversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}//1.定义cur和prevTreeNode cur root;TreeNode prev null;//2.当cur不为空时while (cur ! null) {//2.1prev为cur左子树prev cur.left;//2.2prev不为空时if (prev ! null) {//2.2.1用prev找到左子树最右侧节点while (prev.right ! null prev.right ! cur) {prev prev.right;}//2.2.2prev右子树不为空时连接if (prev.right null) {prev.right cur;//*前res.add(cur.val);cur cur.left;} else { //2.2.3prev右子树不为空时断开连接prev.right null;//*中res.add(cur.val); *后print(cur.left)cur cur.right;}} else { //2.3prev为空时//*前中res.add(cur.val);cur cur.right;}}//*后print(root)return res; }前序遍历 public ListInteger preorderTraversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}//1.定义cur和prevTreeNode cur root;TreeNode prev null;//2.当cur不为空时while (cur ! null) {//2.1prev为cur左子树prev cur.left;//2.2prev不为空时if (prev ! null) {//2.2.1用prev找到左子树最右侧节点while (prev.right ! null prev.right ! cur) {prev prev.right;}//2.2.2prev右子树不为空时连接if (prev.right null) {prev.right cur;res.add(cur.val);cur cur.left;} else { //2.2.3prev右子树不为空时断开连接prev.right null;cur cur.right;}} else { //2.3prev为空时res.add(cur.val);cur cur.right;}}return res; } 中序遍历 public ListInteger inorderTraversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}//1.定义cur和prevTreeNode cur root;TreeNode prev null;//2.当cur不为空时while (cur ! null) {//2.1prev为cur左子树prev cur.left;//2.2prev不为空时if (prev ! null) {//2.2.1用prev找到左子树最右侧节点while (prev.right ! null prev.right ! cur) {prev prev.right;}//2.2.2prev右子树不为空时连接if (prev.right null) {prev.right cur;cur cur.left;} else { //2.2.3prev右子树不为空时断开连接prev.right null;res.add(cur.val);cur cur.right;}} else { //2.3prev为空时res.add(cur.val);cur cur.right;}}return res; }后序遍历 当连接已完成时断开连接后打印下层的单链表比如返回到2时打印4返回到1时打印52涉及到了逆序打印单链表的内容。注意应该是打印下一层而不是当前层。循环结束后打印根节点所在的一侧即731。 ListInteger res new ArrayList(); public ListInteger postorderTraversal(TreeNode root) {if (root null) {return res;}//1.定义cur和prevTreeNode cur root;TreeNode prev null;//2.当cur不为空时while (cur ! null) {//2.1prev为cur左子树prev cur.left;//2.2prev不为空时if (prev ! null) {//2.2.1用prev找到左子树最右侧节点while (prev.right ! null prev.right ! cur) {prev prev.right;}//2.2.2prev右子树不为空时连接if (prev.right null) {prev.right cur;cur cur.left;} else { //2.2.3prev右子树不为空时断开连接prev.right null;print(cur.left); //打印左子树cur cur.right;}} else { //2.3prev为空时cur cur.right;}}print(root); //打印根节点所在一侧return res; }//打印链表 public void print(TreeNode head) {TreeNode revList reverseList(head);TreeNode cur revList;while (cur ! null) {res.add(cur.val);cur cur.right;}reverseList(revList); }//翻转单链表 public TreeNode reverseList(TreeNode head) {TreeNode cur head;TreeNode prev null;while (cur ! null) {TreeNode next cur.right;cur.right prev;prev cur;cur next;}return prev; }
http://www.zqtcl.cn/news/449424/

相关文章:

  • 成都建设网站费用做数据库与网站招什么人
  • 最好的wordpress教程啥叫优化
  • 哪个网站做网销更好网站流量流出异常
  • 广州网站定做纸箱手工制作大全
  • 数据库修改网站后台密码cms三合一网站源码
  • 一般做哪些外贸网站丰南建设局网站
  • 网站如何被收录情况自己做的网站如何实现下载文件
  • 龙岩网站设计一般要多久深圳做自适应网站设计
  • 类似于拼多多的网站怎么做资料下载网站建设
  • 做商城网站哪里网站官网建设的价格
  • 网站怎么做用户体验山东富国建设投资有限公司网站
  • app ui模板网站首页改版影响优化
  • 周村网站制作哪家好网站设计基本要素
  • 网站制作与维护费用wordpress文章页不显示侧边
  • 嘉兴网站建设正规公司做室内设计人喜欢的网站
  • 入侵dedecms网站管理员密码百度注册域名免费建站
  • 找晚上做的工作去哪个网站企业开发软件公司拓展方案
  • 济宁建站公司wordpress博客入门
  • 做外贸需要网站wordpress app 打包
  • 免费网站站长查询丽水微信网站建设公司
  • 广州品牌网站建设先做网站 先备案
  • jsp系统网站建设带源代码梧州网页设计
  • 二手书籍交易网站开发方式关键词seo排名优化如何
  • 陕西西安潍坊网站seo外包
  • 计算机专业网站开发开题报告网站推广营销怎么做
  • 比较大的做网站的公司电影网站盗链怎么做
  • 江苏响应式网站建设哪里有台州网站制作方案
  • 深圳设计网站有哪些展览展会策划公司
  • 微信生活门户网站源码河北建设厅网站初始密码
  • 企业如何做网站推广成都外贸网站建设