
剑指offer
剑指offer
_illusion_
知乎主页:https://www.zhihu.com/people/illusions-29/posts
展开
-
【python数据结构与算法】【剑指offer】字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba,且要求输出字符串按序排列,不可重复 思路:其实排列问题的思路很简单,有点类似《剑指offer》里那道“青蛙跳台阶”的题目,即——对于字符串长度为n的情况,将第一位的情况固定后,剩下的就是(n-1)长度...原创 2018-10-22 22:09:41 · 377 阅读 · 0 评论 -
【Python数据结构与算法】【剑指offer】顺时针打印矩阵
题目描述与链接:https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a?tpId=13&tqId=11172&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 输入...原创 2018-11-22 16:53:42 · 196 阅读 · 0 评论 -
【python数据结构与算法】LeetCode:反转链表
题目链接:https://leetcode-cn.com/problems/reverse-linked-list/介绍一下反转链表的思路:首先,先明确一下输入:输入为一个链表的头结点head具体步骤:先判断头结点或头结点的next属性head.next 是否为None。若是,直接返回该头结点,说明该链表为空或者长度为1,没有反转必要; 申请两个变量: last变量:初始为No...原创 2018-12-27 18:52:49 · 158 阅读 · 0 评论 -
【python数据结构与算法】二叉树的“后继节点”(二叉树的下一个节点)、二叉树的序列化和反序列化
1.二叉树的“后继节点”(二叉树的下一个节点)剑指offer题目链接:二叉树的下一个节点二叉树的后继结点定义:一棵二叉树的中序遍历中,每个节点的下一个节点称为该节点的后继结点二叉树的前驱结点定义:一棵二叉树的中序遍历中,每个节点的前一个节点称为该节点的前驱结点那么,如何获得一个给定节点的后继结点?注意这个节点所在的二叉树的所有节点多一条parent指针,指向自己的父节点。头结...原创 2019-01-05 17:37:07 · 867 阅读 · 1 评论 -
【python数据结构与算法】二叉树的前序、中序、后序遍历(非递归)以及二叉树的层次遍历
二叉树的遍历:非递归版:注意一下所谓“左中右”的含义,这就是前序中序后序本来面目。前序中序后序,三者是以“中”先打印还是后打印区分的前序遍历:中左右:当前节点(中)为头,弹栈顺序是先左再右 步骤 先把当前节点的left和right按照先右后左的次序压栈。遇到节点为None,则跳过。 while内:后面继续压栈的节点,是刚弹出的那个节点的左右节点。原因?“中左右”,指的是该...原创 2019-01-05 17:18:15 · 1136 阅读 · 2 评论 -
【python数据结构与算法】平衡二叉树
判断一棵二叉树是否为平衡二叉树:LeetCode:110.平衡二叉树;剑指offer:平衡二叉树用递归函数处理二叉树是否平衡的判断问题: 原因:因为递归函数很强大。对于二叉树的递归遍历而言,每个二叉树节点都会函数访问3次,分别是“一开始”、“其左子树遍历完之后”和“其右子树遍历完之后”。因而我们可以利用这样的性质来规划我们的函数 递归过程要返回给父节点的信息:子树是否平衡、子树高...原创 2019-01-07 00:59:57 · 1335 阅读 · 2 评论