[LeetCode] Add One Row to Tree
来源:互联网 发布:西建大导师知乎 编辑:程序博客网 时间:2024/05/29 07:47
看了下人家的递归解法,还是有点6,似懂非懂
给个自己比较简单的普通层次遍历解法吧
#include<iostream>
#include<vector>
#include<queue>
using namespacestd;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) :val(x), left(NULL),right(NULL) {}
};
class Solution {
public:
TreeNode* addOneRow(TreeNode* root,int v, int d) {
queue<TreeNode*> q;
q.push(root);
int count=1;
while(!q.empty())
{
if(count==d-1||d==1)
break;
else
{
count++;
int n=(int)q.size();
for(int i=1;i<=n;i++)
{
TreeNode* node=q.front();
q.pop();
if(node->left!=NULL) q.push(node->left);
if(node->right!=NULL) q.push(node->right);
}
}
}
if(d==1)
{
TreeNode* x=newTreeNode(v);
x->left=root;
return x;
}
while(!q.empty())
{
TreeNode* node=q.front();
q.pop();
if(node->left!=NULL)
{
TreeNode* k=node->left;
TreeNode* x=newTreeNode(v);
node->left=x;
x->left=k;
}
else
{
TreeNode* x=newTreeNode(v);
node->left=x;
x->left=NULL;
}
if(node->right!=NULL)
{
TreeNode* k=node->right;
TreeNode* x=newTreeNode(v);
node->right=x;
x->right=k;
}
else
{
TreeNode* x=newTreeNode(v);
node->right=x;
x->right=NULL;
}
}
return root;
}
};
- leetcode-623. Add One Row to Tree
- leetcode 623 Add One Row to Tree
- leetcode 623. Add One Row to Tree
- Leetcode 623. Add One Row to Tree
- [LeetCode] 623. Add One Row to Tree
- [LeetCode] Add One Row to Tree
- leetcode 623. Add One Row to Tree
- LeetCode Add One Row to Tree
- Add One Row to Tree
- 【LeetCode】623.Add One Row to Tree(Medium)解题报告
- 623. Add One Row to Tree
- 623. Add One Row to Tree
- 623. Add One Row to Tree
- 623. Add One Row to Tree
- 623. Add One Row to Tree
- leetcode 623. Add One Row to Tree 深度优先遍历DFS + 很棒的递归
- 623. Add One Row to Tree(Difficulty: Medium)
- Add One Row to Tree问题及解法
- Children of the Candy Corn
- viewpager
- KMP算法
- Spring JdbcTemplate中的回调
- 实训--day就算是23吧
- [LeetCode] Add One Row to Tree
- 浅谈zk(1) 为什么要使用zookeeper?
- [K叉哈夫曼树]BZOJ 4198—— [Noi2015]荷马史诗
- [机器学习入门] 李宏毅机器学习笔记-37 (Deep Reinforcement Learning;深度增强学习入门)
- 1121. Damn Single (25) map,set
- KendoUI:Grid控件的使用
- 小白教你学c++(7)一异常语法专题
- [编程之美-14]求二叉树中节点的最大距离
- TreeMap小应用