一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現多叉樹和二叉樹之間的互轉

Java實現多叉樹和二叉樹之間的互轉

2023-05-09 01:04未知服務器之家 Java教程

目錄 前言 正文 思路分析 代碼實現 總結 前言 本文主要介紹如何把一個多叉樹轉換成二叉樹以及把二叉樹還原成多叉樹。 正文 給出一個多叉樹,實現一個函數,這個函數可以把多叉樹轉成二叉樹,再實現一個函數把二叉樹還原成

目錄
  • 前言
  • 正文
  • 思路分析
  • 代碼實現
  • 總結

前言

本文主要介紹如何把一個多叉樹轉換成二叉樹以及把二叉樹還原成多叉樹。

正文

給出一個多叉樹,實現一個函數,這個函數可以把多叉樹轉成二叉樹,再實現一個函數把二叉樹還原成多叉樹。

如下圖所示,將多叉樹按某種規則進行轉化,轉成二叉樹,并且能從二叉樹再按某種規則還原回來。

Java實現多叉樹和二叉樹之間的互轉

先看下二叉樹轉二叉樹的代碼實現,該方式接收一個多叉樹的頭節點,返回一個二叉樹的頭節點:

public TreeNode encode(Node root) {
   if (root == null) {
      return null;
   }
   TreeNode head = new TreeNode(root.val);
   head.left = en(root.children);
   return head;
}
private TreeNode en(List<Node> children) {
   TreeNode head = null;
   TreeNode cur = null;
   for (Node child : children) {
      TreeNode tNode = new TreeNode(child.val);
      if (head == null) {
         head = tNode;
      } else {
         cur.right = tNode;
      }
      cur = tNode;
      cur.left = en(child.children);
   }
   return head;
}

再看下從二叉樹還原為多叉樹的代碼實現,同樣是接收一個二叉樹的頭節點,返回多叉樹的頭結點:

public Node decode(TreeNode root) {
   if (root == null) {
      return null;
   }
   return new Node(root.val, de(root.left));
}
public List<Node> de(TreeNode root) {
   List<Node> children = new ArrayList<>();
   while (root != null) {
      Node cur = new Node(root.val, de(root.left));
      children.add(cur);
      root = root.right;
   }
   return children;
}

總結

本文主要介紹如何把一個多叉樹轉換成二叉樹以及把二叉樹還原成多叉樹,文中分析了多叉樹和二叉樹相互轉化的過程,實現起來不是很難,但是需要一點技巧,在代碼實現的過程中,使用了深度優先遍歷。

原文地址:https://juejin.cn/post/7229698783645696060

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人免费观看的 | 国产精品久久久久久久福利院 | 吻戏辣妞范1000免费体验 | 国产精品自在欧美一区 | 男同精品视频免费观看网站 | coolgay男男gayxxx chinese壮直男gay老年人 chinese野外gay军人 | 小莹的性荡生活45章 | a级毛片毛片免费很很综合 a级黄色视屏 | 国产福利在线观看永久视频 | 熟睡迷j系列小说 | 武侠古典久久亚洲精品 | 风间由美被义子中文字幕 | 久久全国免费观看视频 | 91极品在线观看 | 九九热视频 这里有精品 | 三级黄色片在线免费观看 | 日本黄色大片免费观看 | 日韩精品中文字幕视频一区 | 3d动漫美女物被遭强视频 | 国产91素人搭讪系列天堂 | 憋尿调教绝望之岛 | 夫妻性生活在线 | 日韩一级片在线免费观看 | 欧美一级乱妇老太婆特黄 | xxxx18日本视频xxxxx | 国产高清精品自在久久 | 无码射肉在线播放视频 | 亚洲国产精品成人久久 | 95视频在线观看在线分类h片 | 国产一区二区三区日韩 | 窝窝影院午夜色在线视频 | 亚洲日韩中文字幕一区 | 无限好资源第一片免费韩国 | 成人福利在线视频免费观看 | jux539原千岁在线播放 | 香蕉精品视频 | 亚洲精品123区在线观看 | 亚洲大片在线观看 | 成年人福利视频 | 3d动漫美女被吸乳羞羞有 | 午夜久久免影院欧洲 |