1. 程式人生 > >劍指offer學習筆記(Python)--二叉搜尋樹的後序遍歷序列

劍指offer學習筆記(Python)--二叉搜尋樹的後序遍歷序列

題目描述

輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的陣列的任意兩個數字都互不相同。

思路

知識點回顧:

二叉搜尋樹(Binary Search Tree,BST)又稱二叉排序樹、二叉查詢樹

    二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹

(1)若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值; (2)若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值; (3)左、右子樹也分別為二叉排序樹;

        特點

:左子樹結點的值都小於根節點的值,右子樹結點的值都大於根節點的值

後序遍歷:先後序遍歷左子樹,再後序遍歷右子樹,最後訪問根節點


後序遍歷得到的序列,最後一個數是樹的根節點的值 ,序列中最後一個數前面的數可以分為兩部分:一部分是左子樹節點的值,它們都比根節點的值小;第二部分是右子樹節點的值,它們都比根節點的值要大。用遞迴的方法分別判斷這兩部分是否滿足前面說得條件

實現


更多:https://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd