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

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

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

服務器之家 - 編程語言 - Java教程 - Java 求解如何把二叉搜索樹轉換為累加樹

Java 求解如何把二叉搜索樹轉換為累加樹

2022-03-09 13:06南淮北安 Java教程

這篇文章主要介紹了Java 求解把二叉搜索樹轉換為累加樹的代碼,總之需要觀察示例節點的規律,需要記錄上個節點的情況,注意引入前驅節點pre,具體實例代碼跟隨小編一起看看吧

一、題目

給出二叉搜索樹的根節點,該樹的節點值各不相同,請你將其轉換為累加樹(Greater Sum Tree),使每個節點 node 的新值等于原樹中大于或等于 node.val 的值之和。

提醒一下,二叉搜索樹滿足下列約束條件:
節點的左子樹僅包含鍵 小于 節點鍵的節點。
節點的右子樹僅包含鍵 大于 節點鍵的節點。
左右子樹也必須是二叉搜索樹。

Java 求解如何把二叉搜索樹轉換為累加樹

 

二、題解

觀察示例圖發現,樹的遍歷順序為右,中,左的順序,每個節點的值,是按照這個順序累加的狀態

Java 求解如何把二叉搜索樹轉換為累加樹

由于是需要累加,所以需要pre指針記錄當前遍歷節點cur的前一個節點,方便累加

(1)確定遞歸函數及返回值

題目需要遍歷整棵樹,同時需要定義一個全局變量 pre,用來保存 cur節點的前一個節點的數值

(2)確定遞歸終止條件

遇到空就終止

(3)確定單層遞歸的邏輯

遍歷的順序,右,中,左

 

三、代碼

class Solution {
  // 記錄前驅節點
  int pre = 0;

  public TreeNode convertBST(TreeNode root) {
      // 空節點終止
      if (root == null) {
          return root;
      }
      // 遍歷順序:右,中,左
      convertBST(root.right);
      root.val += pre;
      pre = root.val;
      convertBST(root.left);
      return root;
  }
}

 

四、總結

觀察示例節點的規律,需要記錄上個節點的情況,注意引入前驅節點pre

到此這篇關于Java 求解如何把二叉搜索樹轉換為累加樹的文章就介紹到這了,更多相關Java 二叉搜索樹轉換為累加樹內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/nanhuaibeian/article/details/121096863

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人免费体验区福利云点播 | 亚洲第一男人网站 | 国产黄色大片网站 | 精品国产乱码久久久久久免费 | 国产高清露脸学生在线观看 | 4s4s4s4s色大众影视 | 精品国产成人a区在线观看 精品国产91久久久久久久 | 青青在线国产视频 | 99热这里只有精品一区二区三区 | 成人福利在线播放 | 欧美精品一区二区三区免费 | 国产1广场舞丰满老女偷 | 无人区乱码1区2区3区网站 | 欧美va天堂va视频va在线 | 日本xxx在线观看免费播放 | 星星动漫在线观看免费 | 天天视频官网天天视频在线 | 99精品免费视频 | 亚洲黄色免费在线观看 | 国产成人精品免费视频大全五级 | 国产草| 国内小情侣一二三区在线视频 | 欧美成人福利视频 | 成人网子 | 国色天香社区在线视频免费观看 | 国产探花在线观看 | 国产99在线a视频 | 娇小8一12xxxx第一次 | 国产伦精一区二区三区视频 | 亚洲精品福利一区二区在线观看 | 女人日男人 | 精品欧美一区二区在线观看欧美熟 | 婷婷中文网| 大陆国语自产精品视频在 | 538亚洲欧美国产日韩在线精品 | 草莓视频幸福宝 | 情人我吃糖果小说 | 天美网站传媒入口网址 | 欧美日本一道高清二区三区 | 啊啊啊好大在线观看 | 国产成人精选免费视频 |