日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现)

發布時間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

leetcode刷題筆記-114. 二叉樹展開為鏈表(java實現)

題目描述

給你二叉樹的根結點 root ,請你將它展開為一個單鏈表:

展開后的單鏈表應該同樣使用 TreeNode ,其中 right 子指針指向鏈表中下一個結點,而左子指針始終為 null 。

展開后的單鏈表應該與二叉樹 先序遍歷 順序相同。

示例 1:

?

輸入:root = [1,2,5,3,4,null,6]

輸出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

輸入:root = []

輸出:[]

示例 3:

輸入:root = [0]

輸出:[0]

提示:

樹中結點數在范圍 [0, 2000] 內

-100 = Node.val = 100

來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list

解題思路

1)把左子樹和右子樹拉平

2)左子樹放到右子樹位置,然后把右子樹放到左子樹下方

參考來源:https://labuladong.gitbook.io/algo/shu-ju-jie-gou-xi-lie/shou-ba-shou-shua-er-cha-shu-xun-lian-di-gui-si-wei/er-cha-shu-xi-lie-1

解題代碼

/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode() {}

* TreeNode(int val) { this.val = val; }

* TreeNode(int val, TreeNode left, TreeNode right) {

* this.val = val;

* this.left = left;

* this.right = right;

* }

* }

*/

class Solution {

public void flatten(TreeNode root) {

if(root == null) {

return;

}

flatten(root.left);

flatten(root.right);

//左右子樹拉成平鏈

TreeNode left = root.left;

TreeNode right = root.right;

root.left = null;

root.right = left;

//把右子樹掛在調整的鏈后邊

TreeNode p = root;

while(p.right != null) {

p = p.right;

}

p.right = right;

}

}

點擊并拖拽以移動

leetcode刷題筆記-114. 二叉樹展開為鏈表(java實現) 相關文章

leetcode刷題筆記-116. 填充每個節點的下一個右側節點指針(java實現)

題目描述 給定一個完美二叉樹,其所有葉子節點都在同一層,每個父節點都有兩個子節點。二叉樹定義如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每個 next 指針,讓這個指針指向其下一個右側節點。如果找不到下一個右側節

leetcode刷題筆記-226. 翻轉二叉樹(java實現)

題目描述 翻轉一棵二叉樹。 示例: 輸入: 4 / \ 2 7 / \ / \ 1 3 6 9 輸出: 4 / \ 7 2 / \ / \ 9 6 3 1 來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/invert-binary-tree 解題思路 經過觀察,把二叉樹的左右子節點進行交換,所有子節點

吳裕雄--天生自然 Zookeeper學習筆記--Zookeeper 節點特性

介紹一下 zookeeper 的節點特性和簡單使用場景,正是由于這些節點特性的存在使 zookeeper 開發出不同的場景應用。 1、同一級節點 key 名稱是唯一的實例:$ ls /$ create /runoob 2 2、創建節點時,必須要帶上全路徑實例:$ ls /runoob$ create /runoob/child

吳裕雄--天生自然 Zookeeper學習筆記--Zookeeper 四字命令

zookeeper 支持某些特定的四字命令與其交互,用戶獲取 zookeeper 服務的當前狀態及相關信息,用戶在客戶端可以通過 telenet 或者 nc(netcat) 向 zookeeper 提交相應的命令。安裝 nc 命令:$ yum install nc # centos或$ sudo apt install netcat # ubuntu

吳裕雄--天生自然 Zookeeper學習筆記--Zookeeper Java 客戶端搭建

使用的 IDE 為 IntelliJ IDEA,創建一個 maven 工程,命名為 zookeeper-demo,并且引入如下依賴,可以自行在maven中央倉庫選擇合適的版本,介紹原生 API 和 Curator 兩種方式。 dependency groupIdjunit/groupId artifactIdjunit/artifactId version4.11/ver

吳裕雄--天生自然 Zookeeper學習筆記--ZooKeeper 數據模型 znode 結構詳解

數據模型在 zookeeper 中,可以說 zookeeper 中的所有存儲的數據是由 znode 組成的,節點也稱為 znode,并以 key/value 形式存儲數據。整體結構類似于 linux 文件系統的模式以樹形結構存儲。其中根路徑以 / 開頭。進入 zookeeper 安裝的 bin 目錄,通過sh zk

吳裕雄--天生自然 Zookeeper學習筆記--Zookeeper 安裝配置

Linux 安裝zookeeper 下載地址為: https://zookeeper.apache.org/releases.html。 打開網址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界面: 選擇一個下載地址,使用 wget 命令下載并安裝:$ wg

redis6.0.5之zset閱讀筆記4--壓縮列表(ziplist)排序集相關API

***********************************************************************************************獲取壓縮鏈表中節點的數值double zzlGetScore(unsigned char *sptr) { unsigned char *vstr; unsigned int vlen; long long vlong; char buf[128]; double

吳裕雄--天生自然 Zookeeper學習筆記--Zookeeper linux 服務端集群搭建步驟

所需準備工作,創建三臺虛擬機環境并安裝好 java 開發工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 環境,本案例基于宿主機 windows10 系統同時使用 vagrant+virtualbox 搭建的 centos7 環境,如果直接使用云服務器或者物理機同理。

算法刷題及總結_數組篇

二分法 //算法總結//第一部分:數組相關/***Leetcode題目35:搜索插入位置*給定一個排序數組和一個目標值,在數組中找到目標值,并返回其索引。如果目標值不存在于數組中,返回它將會被按順序插入的位置。*示例 1:*輸入: [1,3,5,6], 5*輸出: 2**示例 2:*輸入

總結

以上是生活随笔為你收集整理的java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。