PreOrder, InOrder, PostOrder 题型总结

这篇博客总结了二叉树的PreOrder、InOrder、PostOrder遍历的模拟方法,以及相关应用,如构造二叉树、查找二叉搜索树中的第K小元素、后继节点等。此外,还探讨了验证二叉搜索树的有效性、构造二叉搜索树、寻找最近的BST值等题目,强调了非递归方法的优势和在解决此类问题中的应用。
摘要由CSDN通过智能技术生成

最基本的 Preorder, Inorder, Postorder Traverse

Binary Tree Preorder traverse (用stack模拟,先进去right ,再进去left)

Binary Tree Inorder traverse (用stack模拟,每次push整个左枝的所有node,再变换到右边);

Binary Tree Postorder traverse (用stack模拟,跟preorder一样,只是左右的顺序不一样,最后我们可以反过来记录,这样就把原来的问题转换成了一个我熟知的类似于preoder traverse的问题, 记住linkedlist需要addFirst,才能每次O(1)加到前面;)

Kth Smallest Element in a BST (就是inorder的翻版,记录一下count = k就可以了);

Inorder Successor in BST ( Time Complexity: O(logK). 先遍历找到P,同时记录一下左拐的点, 然后如果有右儿子,就扎到最右边的最左下的node,如果没有右儿子,就是找到这个点最后一个左拐的点)

Inorder Successor in BST II (如果有右边节点,那么往右走,右边的最左边node就是答案。如果没有右边的node,那么向上找到第一个左拐的node,就是答案) 

Validate Binary Search Tree (用stack来模拟inorder,然后记录pre node,如果pre node >= curnode return false; ) 这里注意的是stack 模拟为什么好?就是dfs是用的call stack,很容易stackoverflow,如果是用stack的话,那么就是利用heap来做 simulation,那样就很大,不会爆栈);

Construct Binary Tree from Preorder and Inorder Traversal (用preorder的root,去找inorder的root,确定leftsize大小,递归即可)

Construct Binary Tree from Inorder and Postorder Traversal (用postorder的最后一个root 去inorder里面找root,确定leftsize, 递归)

Construct Binary Search Tree from Preorder Traversal (用queue的思想,current, left, rig

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值