查看: 4693| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

[树/链表/图] 分享binary tree的recursion解题思路

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Binary tree的题可以用recursive 和iterative 方法解决。我主要分享下如何用recursive方法解决binary tree 的问题。欢迎大家指正。

Binary tree recursive一般有top down 和bottom-up 两种。top down是从上往下用preorder做。一般查看树的形态(比如 same tree, symmetric tree)和求从根节点到子节点的path之类的题,可以首先考虑用pre-order来做。

preorder 题的模版大概是如下:

1. base case (if root == NULL)
2. update answer based on current node and its left, right node
3. top_down(root->left, left_params)            
4. top_down(root->right, right_params)

bottom up 是从下往上,先求叶子节点,然后再处理根节点。这个相当于post-order. 求整个树的depth, 有多少节点,可以选择bottom up.

bottom up 的模版一般是:

1. base case
2. left_ans = bottom_up(root->left)
3. right_ans = bottom_up(root->right)
4. update and return answers (在这里一般需要建立root 和left_ans, right_ans的关系)

下面是一些关于tree的pre-order和post-order的题。也希望大家能够补充更多的题。

Preorder
100    Same Tree
101    Symmetric Tree
111    Minimum Depth of Binary Tree
112    Path Sum
113    Path Sum II
437    Path Sum III
129    Sum Root to Leaf Numbers
298    Binary Tree Longest Consecutive Sequence
257    Binary Tree Paths

Postorder
104    Maximum Depth of Binary Tree
110    Balanced Binary Tree
124    Binary Tree Maximum Path Sum
222    Count Complete Tree Nodes
226    Invert Binary Tree
236    LCA
250    Count Univalue Subtrees
366    Find Leaves of Binary Tree
654    Maximum Binary Tree

评分

参与人数 10大米 +20 收起 理由
845765286 + 1 赞一个
snail8844 + 1 给你点个赞!
spongezzr + 1 给你点个赞!
hagendasi + 2 给你点个赞!
软绵绵巧克力云 + 2 给你点个赞!

查看全部评分


上一篇:需要用binary index Tree解的题目在面试中常见吗
下一篇:二分查找解题模式
全局:
感谢楼主整理!在做BT的题目时经常感觉recursive解法会比iterative容易很多,不知道在面试时会不会被要求用只能用iterative解呢?(之前刷bt都是两种解法都写,后面就偷懒了…)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表