激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美高清一级片 | 欧美成人综合视频 | 国产色91 | 成人免费在线观看视频 | 国产噜噜噜噜久久久久久久久 | 久久精品国产一区二区电影 | 国产精品久久久久免费视频 | 久久99精品久久久久久236 | 久国产| 久久小视频 | 欧美视频一区二区三区在线观看 | 色屁屁xxxxⅹ在线视频 | 成人短视频在线观看免费 | 成人免费毛片在线观看 | 国产精品视频一区二区三区综合 | 羞羞视频免费视频欧美 | 国产69精品久久久久9999不卡免费 | 精品久久中文网址 | 欧美一级一片 | 亚洲欧美国产高清va在线播放 | 色婷婷av一区二区三区久久 | 欧美三级欧美成人高清www | 久久综合精品视频 | 久久久99精品视频 | 亚洲精品wwww | 国产免费让你躁在线视频 | 国产在线精品一区二区三区不卡 | fc2成人免费人成在线观看播放 | 91网视频在线观看 | 久久精品国产一区二区 | 免费视频a | 亚洲视频在线观看免费视频 | 日本教室三级在线看 | 亚洲导航深夜福利涩涩屋 | 男人久久天堂 | 成人不卡 | 欧美精品一区二区三区久久久 | 国产在线欧美日韩 | 成人免费观看毛片 | 一级黄色影片在线观看 | 黄色网址免费在线播放 |