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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99热成人精品免费久久 | 亚洲精品私拍国产福利在线 | 男人肌肌捅女人 | 国产高清视频在线 | 午夜宅男宅女看在线观看 | 男女操bb | 久久偷拍人 | 亚洲激情在线视频 | 甜蜜惩罚小说 | 国产伦码精品一区二区三区 | 精彩国产萝视频在线 | 美女扒下内裤让男人桶的图片 | t66y地址一地址二地址三 | 日韩毛片高清在线看 | 暖暖的免费观看高清视频韩国 | 金莲一级淫片aaaaaa | 男人插曲女人下面 | 国产精品免费视频能看 | blackedhd 18sex | 亚洲国产第一区二区香蕉日日 | 91精品国产亚洲爽啪在线影院 | 亚洲人成网站在线观看播放青青 | 国产性色视频 | 91制片厂制作果冻传媒八夷 | 日韩精品视频美在线精品视频 | 操一操影院 | 操儿子| 亚洲国产日韩欧美mv | av在线色| 激情五月姐姐 | 国产在线三级 | 日韩精品视频福利资源站 | 亚洲国产精品久久丫 | 被教官揉了一晚上的奶小说 | 色欲麻豆国产福利精品 | 欧美另类亚洲 | 日本中文字幕一区二区高清在线 | 久久丫线这里只精品 | 青青青久热国产精品视频 | 日本老师动漫 | 精品国产综合区久久久久久 |