原文:
https://leetcode.com/problems/add-one-row-to-tree/description/
题目意思:给定两个值 v ,d, 表示意思是在第d行增加v
题目意思:给定两个值 v ,d, 表示意思是在第d行增加v
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode addOneRow(TreeNode root, int v, int d) {
if(d==1){
TreeNode node = new TreeNode(v);
node.left = root;
return node;
}
dfs(root,v,d,1) ;
return root;
}
public void dfs(TreeNode root,int v,int d,int curr){
if(root == null) return;
if(curr == d-1){
TreeNode leftt = new TreeNode(v);
leftt.left = root.left;
root.left = leftt;
TreeNode rightt = new TreeNode(v);
rightt.right= root.right;
root.right = rightt;
return;
}
dfs(root.left,v,d,curr+1);
dfs(root.right,v,d,curr+1);
}
}
这种二叉树的问题,我们都应该首先考虑dfs。核心思想就是第d行指向d-1的left,第d-1行的节点指向d.