zoukankan      html  css  js  c++  java
  • leetcode部分解题思路

    1.二叉树,前序遍历

    通过栈,先把root放入。判断栈不为空时,执行以下循环:抛出栈顶元素并记录值,将当前元素的右子(如有)入栈,左子(如有)压栈。

    最后返回记录值的数组即可。

    后序遍历

    与前序基本一致,只是抛出栈顶元素后,先将左子入栈,再将右子入栈。保证所有顺序是右在最上面

    最后将数组逆序,即为结果

    中序遍历

    先建个head节点,值随意,右子指向root,将head入栈。当栈不空,执行循环:

    抛出栈顶元素并记录值,当前节点指向右子,执行内循环:当前节点不为空时,节点入栈,当前节点指向左子;

    返回数组。

    2.链表

    判断是否有环:一快(走两步)一慢(走一步),直到相等(有)或快的为空(无)

    逆序:逐个遍历,指针倒过来(需三个指针,分别一直指向前中后三个节点)

    找链表环开始的节点:在判断环的基础上,当快慢相等时,使一个回到head开始走next,另一个当前走next,再相遇就是环的开始节点

  • 相关阅读:
    Merge k Sorted Lists
    N-Queens
    N-Queens II
    Reorder List
    使用AJAX实现文件上传时Illegal invocation错误
    php页面开启错误提示
    php分割最后一个逗号后面的字符
    微信卡券添加(微擎系统)
    php请求php
    Navicat MySQL连接Linux下MySQL的问题解决方案
  • 原文地址:https://www.cnblogs.com/baby-lee/p/4704028.html
Copyright © 2011-2022 走看看