【LeetCode笔记】剑指 Offer 36. 二叉搜索树与双向链表(Java、二叉树、链表、原地算法)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】剑指 Offer 36. 二叉搜索树与双向链表(Java、二叉树、链表、原地算法)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 題目描述
- 思路 && 代碼
- 1. 非原地算法
- 2. 原地算法
- 二刷
題目描述
- 談到二叉搜索樹(shù),那就得考慮考慮中序遍歷啦~
- 這道題對(duì)中序遍歷的理解提升很有好處!
思路 && 代碼
1. 非原地算法
- 最簡(jiǎn)單的做法,依賴(lài)ArrayList,但是不滿(mǎn)足原地算法的要求
- 只要通過(guò)中序遍歷,把樹(shù)上結(jié)點(diǎn)存儲(chǔ)到ArrayList中,再通過(guò)下標(biāo)進(jìn)行操作即可。
2. 原地算法
- 和1異曲同工,但是相對(duì)更加巧妙!
- Node first:存儲(chǔ)最左邊的**“首位”**結(jié)點(diǎn),用于最后的處理
- Node pre:在遞歸中輔助使用,遞歸結(jié)束后指向**“末尾”**結(jié)點(diǎn)
- 同樣是中序遍歷,要注意好 cur 、pre 的處理
- cur 是局部變量;pre、first 是全局變量
二刷
- 中序遍歷 + 全局變量
總結(jié)
以上是生活随笔為你收集整理的【LeetCode笔记】剑指 Offer 36. 二叉搜索树与双向链表(Java、二叉树、链表、原地算法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 初中数学503个必考知识点_2020年中
- 下一篇: 叮!您收到一份超值Java基础入门资料!