
详细思路
dfs,六星图,参数root,将整棵树next完毕,当左右子树都next完毕,六星图,我只需要把左子树的最右指向右子树的最左
精确定义
dfs,参数root把root树next完毕,为空提前返回。没有23或者56提前返回
class Solution { public: Node* connect(Node* root) { dfs(root); return root; } void dfs(Node*root){ if(!root)return; dfs(root->left); dfs(root->right); Node*left=root->left,*right=root->right; while(left||right){ left->next=right; left=left->right; right=right->left; } return; } };
踩过的坑
大部分情况下六星图已经够好(深度为3),这道题容易误会只需要连接23和56,实际更深也要连接
浙公网安备 33010602011771号