Leetcode#114 Flatten Binary Tree to Linked List

2987 단어 LeetCode
원제 주소
 
먼저 두 갈래 나무를 옮겨다니며 차례로 펼친다.
left를 NULL로 설정하는 것을 잊지 마세요. 잊어버리면 런타임 에로르에게 보고할 수도 있고, 이 RE는 원인을 찾기 어려울 수도 있습니다.
 
코드:
 1 TreeNode *solve(TreeNode *root) {

 2   if (!root)  return NULL;

 3         

 4   TreeNode *leftHead = root->left;

 5   TreeNode *leftTail = solve(leftHead);

 6   TreeNode *rightHead = root->right;

 7   TreeNode *rightTail = solve(rightHead);

 8   TreeNode *tail = root;

 9         

10   //       

11   tail->left = tail->right = NULL;

12         

13   if (leftHead) {

14     tail->right = leftHead;

15     tail = leftTail;

16   }

17   if (rightHead) {

18     tail->right = rightHead;

19     tail = rightTail;

20   }

21         

22   return tail;

23 }

24 

25 void flatten(TreeNode *root) {

26   solve(root);

27 }

좋은 웹페이지 즐겨찾기