摘要: 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路 二叉搜索树的中序遍历是一个递增数列。因此在中序遍历的过程中计数即可找到第k小的节点。 代码 # -*- coding:utf-8 -*- # class 阅读全文
posted @ 2020-02-12 20:03 ditingz 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路(1 自己完成的哦😯 层次遍历,遍历的时候将层数加在队列里。 阅读全文
posted @ 2020-02-12 15:40 ditingz 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路(参考 1.只要pRoot.left和pRoot.right是否对称即可 2.左右节点的值相等且对称子树(left.left, right.right );(left.rig 阅读全文
posted @ 2020-02-12 15:21 ditingz 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路 首先知道中序遍历的规则是:左根右,然后作图 1.若当前节点有右子树,下一节点为右子树的最左节点2.若无右节点,则下一节点为第一个为其父节点左孩子的父 阅读全文
posted @ 2020-02-12 11:25 ditingz 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是 阅读全文
posted @ 2020-02-12 10:40 ditingz 阅读(230) 评论(0) 推荐(0) 编辑