分类刷题-二叉树

      1.重建二叉树:https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

       总结:根据其他遍历去确定中序遍历的根节点。

      2.二叉树的后续遍历:https://www.nowcoder.com/practice/c8dbc39e4c784cc69c8f263b32220165

      总结:思路就是重构二叉树然后就后续遍历。

class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> result = new LinkedList<>();
        postorderHelper(root, result);
        return result;
    }

    private void postorderHelper(TreeNode root, List<Integer> result) {
        if (root == null) return;
        result.add(root.val); // 访问根节点
        postorderHelper(root.left, result); // 遍历左子树
        postorderHelper(root.right, result); // 遍历右子树
        //总结:返回的是什么?打印右节点也先检查右节点是不是有左节点,就是一直向左深入,深入到尽头再返回来,执行right,进入right也是一直向左深入再返回。

    }
}

     3.树的不同形态:https://www.nowcoder.com/practice/54713e2ad6ac4a6baa52838cff09662a

      总结:找到一次递归的根节点

     4.将满二叉树转变为求和树:https://www.nowcoder.com/practice/b31734e46ba644de85a9cf95bbd57a5f

      总结:求和用递归,参照前序遍历。

    5.二叉树的层序遍历:https://www.cnblogs.com/hapjin/p/5409921.html

--------------------------------20191124---------------------------------

   6.树的按层打印:https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288?tpId=13&tqId=11213&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

   总结:用queue,Queue是接口,里面用链表实现的。next和current计数。

-------------------------------20191125----------------------------------

  7.二叉树的镜像:https://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

  总结:典型的递归

 8.判断儿茶搜索树的是否是后序遍历:https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd?tpId=13&tqId=11176&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

  总结:递归判断,递归的精髓是找到每次重复计算的函数,通过参数去不断地减小计算的范围。

---------------------------------------------------20191126--------------------------------------------------------------------------------

9.二叉树的和为某一路径:https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

总结:回溯递归下面有方法的话,指的是每次回去都要操作的。就是退回到之前的状态。

----------------------------------------------------------20191127--------------------------------------------------------------------------

10.二叉树转为双向链表:https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

总结:中序遍历

--------------------------------------------------20191128-----------------------------------------------------------------------------------

11.二叉树的深度:https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId=13&tqId=11191&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路:递归

12.判断平衡二叉树:https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

--------------------------------------------------------20191129-------------------------------------------------------------------------------

13.中序遍历的下一个节点:https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e?tpId=13&tqId=11210&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路:1.分为两种情况,有右节点,没有右节点,没有右节点的话分为本身为右节点和本身不是右节点。

14.判断二叉树的对称:https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&tqId=11211&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路:先镜像再判断

----------------------------------------------------------20191130------------------------------------------------------------------------------

15.二叉树的z打印:https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0?tpId=13&tqId=11212&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路:两个栈

-----------------------------------------------------------20191201-------------------------------------------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值