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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)

發(fā)布時間:2024/7/23 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 題目描述
  • 思路 && 代碼
      • 1. 遞歸做法
      • 2. 輔助棧做法
      • 二刷

打卡第四天~昨天沒來得及寫博客= =

題目描述

  • 無須多言,直接沖思路吧!

思路 && 代碼

1. 遞歸做法

  • 缺點:最差情況下,可能會退化成鏈表,導(dǎo)致時間復(fù)雜度變成 O(n2n^2n2)
  • 但是比較好理解!對于當(dāng)前序列,根據(jù)末尾元素值來找左子樹范圍 && 右子樹范圍,然后分別遞歸進行判斷即可~
class Solution {public boolean verifyPostorder(int[] postorder) {// 遞歸法!return isTree(postorder, 0, postorder.length - 1);}public boolean isTree(int[] postorder, int start, int end) {// 找完了if (start >= end) {return true;}int left = start;// 找左子樹while(left < end && postorder[left] < postorder[end]) {left++;}// 找右子樹int right = left;while(right < end && postorder[right] > postorder[end]) {right++;}// 右子樹臨接根才行~return right == end && isTree(postorder, start, left - 1) && isTree(postorder, left, right - 1);} }

2. 輔助棧做法

  • 相對于上一個做法,這里把時間復(fù)雜度穩(wěn)定在O(nnn),同時做了空間復(fù)雜度O(n)的犧牲~
  • 可以結(jié)合這個大佬的題解一起理解,有圖還是比較便于理解的
  • 這個做法一開始可能有點難理解,可以多跟著畫幾次圖理一理
class Solution {// 輔助棧法!public boolean verifyPostorder(int[] postorder) {// 初始化,把postorder[len - 1]看成無窮的左結(jié)點Stack<Integer> stack = new Stack<>();int root = Integer.MAX_VALUE;// 逆向,變成 根 - 右 - 左 的遍歷for(int i = postorder.length - 1; i >= 0; i--) {// 左子樹結(jié)點不能比根 or 根的右子樹結(jié)點大if(postorder[i] > root) {return false;}// 找到大于當(dāng)前結(jié)點的棧值while(!stack.isEmpty() && stack.peek() > postorder[i]) {// 循環(huán)結(jié)束時找到 root,途中pop掉的結(jié)點無后效性root = stack.pop();}stack.push(postorder[i]);}return true;} }

二刷

class Solution {public boolean verifyPostorder(int[] postorder) {return judge(postorder, 0, postorder.length - 1);}public boolean judge(int[] postorder, int left, int right) {if(left >= right) {return true;}int leftEnd = left;while(leftEnd < right && postorder[leftEnd] < postorder[right]) {leftEnd++;}int rightEnd = leftEnd;while(rightEnd < right && postorder[rightEnd] > postorder[right]) {rightEnd++;}return rightEnd == right && judge(postorder, left, leftEnd - 1) && judge(postorder, leftEnd, rightEnd - 1);} }
  • 輔助棧做法:先鴿著,以后有空寫。

總結(jié)

以上是生活随笔為你收集整理的【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美第一视频 | 8x8x永久免费视频 | 国产又粗又大又黄 | 热久久免费 | 天天爱天天做天天爽 | 国产一区二区三区网站 | 成人欧美一区二区三区在线播放 | 欧美一区二区免费 | 在线看你懂得 | 男人和女人日b视频 | 国产精品自拍在线观看 | 性欧美video另类hd尤物 | 欧美激情一区二区三区免费观看 | 爽爽淫人 | 在线观看精品视频 | 亚洲视频在线一区二区 | 熟妇人妻系列aⅴ无码专区友真希 | 亚洲国产精品久久久久爰性色 | 日本一区二区三区网站 | 男女羞羞的视频 | 91av官网| 欧美一级在线 | 亚洲天堂一 | 精品中文字幕一区二区 | juliaann第一次和老师 | 91手机视频 | 91在线一区二区三区 | 性欧美hd调教 | 人人妻人人澡人人爽人人精品 | 最新久久久| 本田岬av | 午夜激情成人 | 国产精品mv| 国产在线观看中文字幕 | 老司机精品导航 | 色97| 国产成人在线看 | av色在线 | 天堂久久av| 欧美日韩在线成人 | 高清乱码免费看污 | 午夜影院在线观看18 | 一区精品在线观看 | 天堂va蜜桃一区 | 欧美美女性高潮 | 尤物国产在线 | 日本美女久久 | 美国成人免费视频 | jizzjizz国产| 干一干操一操 | 国产麻豆剧传媒精品国产av | 国产精品久久久久久久久夜色 | 国产麻豆电影在线观看 | 中文精品一区二区三区 | 精品成人一区二区三区 | 熟女视频一区二区三区 | 天堂中文在线播放 | 久久久久无码精品国产sm果冻 | 看a网站| 欧美mv日韩mv国产网站 | 一级中国毛片 | 在线成人欧美 | 色射视频 | 精品国产一区二区三区性色 | 日本乱子伦 | 五月天婷婷综合网 | 国产成人在线网站 | 国产午夜性春猛交ⅹxxx | 欧美日韩亚洲一区二区三区 | 欧美在线a| 国内精品久久久久久久久久久 | 日韩精品极品视频免费观看 | 91丝袜视频| 欧美日本在线看 | 欧美久久视频 | 精品国产露脸精彩对白 | 亚洲在线精品视频 | 性久久久久 | 欧美毛片视频 | 成年人在线播放视频 | 嫩草视频一区二区三区 | 欧洲一级片 | 国产精品主播 | 欧美一区二区三区成人精品 | 久久国产精品久久精品国产 | 免费看的毛片 | 四虎视频在线观看 | 国产视频一区在线观看 | 亚洲无吗一区二区三区 | 成人里番精品一区二区 | 狼人综合伊人 | 99热伊人 | 在线中出 | 图片区亚洲 | 两个人做羞羞的视频 | 日韩在线免费视频观看 | 成人性视频sm. | 日本xxx在线观看 | 国产欧美日韩精品一区 |