首页
学习
活动
专区
工具
TVP
发布

calmound

专栏作者
235
文章
169253
阅读量
42
订阅数
二叉树遍历的非递归实现
#include<stdio.h> #include<stack> #include<stdlib.h> using namespace std; struct ListNode { int data; ListNode *lchild,*rchild; }; ListNode* Createbst() { int data; scanf("%d",&data); if(data!=-1) { ListNode* root=(ListNod
用户1624346
2018-04-17
7190
Binary Tree Level Order Traversal
问题:从上到下打印二叉树的每一行 分析:先搜出二叉树的高度,然后遍历高度,每次搜索一个高度 class Solution { public: int dfs(TreeNode *root) { if(root==NULL) return 0; if(root->left==NULL && root->right==NULL) return 1; return max(dfs(root->left),dfs(root->right))+1;
用户1624346
2018-04-17
5080
Binary Tree Level Order Traversal II
问题:输出二叉树的每一行的结点,从叶子到根 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int dfs(TreeNode
用户1624346
2018-04-17
4980
Symmetric Tree
问题:判断二叉树是否为镜像二叉树 分析:递归判断,根节点单独判断,然后递归左结点和右结点,之后每次一起递归左结点的左结点和右结点的右结点比较,左结点的右结点和右结点的左结点比较 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), righ
用户1624346
2018-04-17
4700
Same Tree
问题:判断两棵二叉树是否相等 class Solution { public: bool isSameTree(TreeNode *p, TreeNode *q) { if(!( (p && q && p->val==q->val) || (p==NULL && q==NULL))) return false; if(p==NULL || q==NULL) return true; return isSameTree(p->left,q->left)
用户1624346
2018-04-17
5550
Binary Tree Inorder Traversal
问题:二叉树中序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void InOrder(TreeNode
用户1624346
2018-04-17
4640
Path Sum
问:二叉树是否存在路径和等于sum的路径,若存在输出true,否则输出false 分析:递归调用二叉树,每次将上一层的val值传递给子结点并加上子节点的val,当传递到某个结点为叶子结点时,判断其val值是否等于sum 错点:二叉树为空,则无论sum为多少都为false,这个容易造成RE         二叉树只有根节点,则直接判断其值与sum的关系 class Solution { public: void PathSum(TreeNode *root,int val,int sum,int &f
用户1624346
2018-04-17
1.2K0
Maximum Depth of Binary Tree
问题:二叉树的最深深度 class Solution { public: void dfs(TreeNode *root,int step,int &MAX) { if(root==NULL) { if(MAX<step) MAX=step; return ; } dfs(root->left,step+1); dfs(root->right,step+1);
用户1624346
2018-04-17
3960
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档