劍指offer 面試題54 二叉搜尋樹的第K大節點

2021-10-04 13:02:35 字數 585 閱讀 7468

問題:給定一棵二叉搜尋樹,請找出其中第k大的節點。

思路:中序遍歷

**:recursion

/*

struct treenode

};*/

class solution

treenode* kthnode(treenode* proot, int k)

};

iteration

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

cur=sk.top();

sk.pop();

k--;

if(k==0)

return cur->val;

cur=cur->right;

}return 0;

}};

複雜度分析:recursion時間複雜度為o(n),空間複雜度為o(1). iteration 時間複雜度為o(k) ,空間複雜度為o(h+k).

《劍指Offer》面試題 平衡二叉樹

題目 輸入乙個二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。思路 用後序遍歷實現 先遍歷節點的左右子樹,左右子樹都平衡才來判斷該節點是否平衡,如果左右子樹中有不平衡的,則直接返回false,避免了從上往下逐個節點地計算深度帶來...

《劍指Offer》面試題 二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 此題的遞迴思想比較簡單,直接用遞迴將根節點的深度轉換為求左右子孩子的深度的較大值 1,根節點的深度等於max 左孩子的深度,右孩子的深度 輸入 第一行輸入有n,n表...

劍指Offer 面試題19 映象二叉樹

操作給定的二叉樹,將其變換為源二叉樹的映象。以題目中的兩棵樹為例 就是先序遍歷這棵樹,如果當前正在遍歷的節點有子結點 無論是左還是右 就交換兩個子節點,當交換完所有的非葉子結點的左右子結點的時候,就得到了樹的映象.具體過程如下所示 注意6和10交換之後,第三層結點的排列順序 遞迴實現 public ...