2020年8月30日

对称的二叉树

摘要: 题目描述:请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 分析: 如果我们拥有一颗对称二叉树,他只需要满足,每个节点的左子树和右子树都是镜像。所以解题思路分四步: 我们检测根节点是不是为 null,如果是,则它肯定是对称的,直接返回 t 阅读全文

posted @ 2020-08-30 16:03 _那些你很冒险的梦 阅读(88) 评论(0) 推荐(0)

二叉树的下一个结点

摘要: 题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 分析:以该二叉树为例,中序遍历为:{D,B,H,E,I,A,F,C,G} 仔细观察,可以把中序下一结点归为几种类型: 1. 有右子树,下一结点是右子树中的 阅读全文

posted @ 2020-08-30 15:32 _那些你很冒险的梦 阅读(110) 评论(0) 推荐(0)

2020年8月29日

平衡二叉树

摘要: 题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 分析:平衡二叉树的定义是左右子树高度差不超过1,同时左右子树也是平衡二叉树,于是代码逻辑可以如下:1. 判断树是否为空,空则返回 true;2. 判断左右子树深度差,其中,求树深 阅读全文

posted @ 2020-08-29 09:17 _那些你很冒险的梦 阅读(122) 评论(0) 推荐(0)

二叉树的深度

摘要: 题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路: 借助队列,对二叉树进行层次遍历; 在层次遍历的过程中,每次当队列中某一层的节点出队完成后,高度+1; 关键点:判别队列中某一层节点出队完成的标准是什么?在出队之 阅读全文

posted @ 2020-08-29 08:57 _那些你很冒险的梦 阅读(96) 评论(0) 推荐(0)

二叉树中和为某一值的路径

摘要: 题目描述:输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 说明:这题真的看不懂,先把别人写的粘过来,日后再研究吧。 PS:与牛客相同! 方法一: 首先我们可以发现,我们需要遍历整个二叉树,所 阅读全文

posted @ 2020-08-29 08:42 _那些你很冒险的梦 阅读(92) 评论(0) 推荐(0)

2020年8月28日

二叉搜索树的后序遍历序列

摘要: 题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 分析:如图,一棵 BST :左孩子 < 根结点 < 右孩子,一棵 BST 的左子树或者右子树都是 BST。 后序遍历是,左右根:[3, 4, 阅读全文

posted @ 2020-08-28 22:25 _那些你很冒险的梦 阅读(233) 评论(0) 推荐(0)

从上往下打印二叉树

摘要: 题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 在Java中Queue是和List、Map同等级别的接口,LinkedList中也实现了Queue接口,该接口中的主要函数有: 容量不够或队列为空时不会抛异常:offer(添加队尾元素)、peek(访问队头元素)、poll(访问队头元 阅读全文

posted @ 2020-08-28 21:23 _那些你很冒险的梦 阅读(96) 评论(0) 推荐(0)

二叉树的镜像

摘要: 题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。 PS:与牛客相同! 递归法:交换左右子树的节点,然后递归调用该方法。 代码: 非递归方法,手动压栈 代码: 阅读全文

posted @ 2020-08-28 20:38 _那些你很冒险的梦 阅读(102) 评论(0) 推荐(0)

2020年8月27日

树的子结构

摘要: 题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 分析: 1.首先需要判断A,B的根节点是否一样; 2.如果不一样,判断A的左孩子和B的根节点是否一样,同理可判断A的右孩子和B的根节点是否一样。依次找下去,如果上述情况都不满足则说明不包含; 3.如 阅读全文

posted @ 2020-08-27 20:55 _那些你很冒险的梦 阅读(126) 评论(0) 推荐(0)

2020年8月26日

删除链表中重复的结点

摘要: 题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。 分析:借助辅助头结点,可避免单独讨论头结点的情况。设置两个结点 pre 和 cur,当 cur 和 cur.nex 阅读全文

posted @ 2020-08-26 19:02 _那些你很冒险的梦 阅读(128) 评论(0) 推荐(0)

导航