找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: CHazyhabiT
收起左侧

[Google] 励志贴: 报个G家offer+面筋

  [复制链接]

5

主题

1

精华

208

积分

高级会员

Rank: 3Rank: 3

积分
208
发表于 1-27-2015 12:52 AM | 显示全部楼层
恭喜楼主!!! 下下周面google ,希望好运把。。

8

主题

2

精华

91

积分

资深会员

Rank: 2

积分
91
发表于 1-27-2015 01:02 AM | 显示全部楼层
master的题目好像要难一些。。。恭喜楼主!

1

主题

1

精华

212

积分

高级会员

Rank: 3Rank: 3

积分
212
发表于 1-27-2015 01:52 AM | 显示全部楼层
CHazyhabiT 发表于 1-27-2015 12:40 AM, N0 }6 e! _( L# |" m
有要求,相对位置不变。

  f* ?5 ]+ z0 ]; `! O! G# p6 o( D乱写了个,请问lz这思路对吗?0 S8 h  }4 Q7 K; b! R0 J% k
5 [2 K7 J; X. K1 e6 |, I: W4 j& K

  1. , j  M) e, s  x: C$ W5 D* z. z
  2. void splitTree(Node* node, int target, Node* &smalltree, Node* &largetree) {
    " [% p& y8 D( q! V4 P6 O
  3.     if (!node) {
    ' J3 S. \8 y9 d6 \) R2 d5 d3 h# E# x
  4.         smalltree = largetree = NULL;
    4 M1 [2 e( X5 J! p5 R% Y/ D& W4 Y: A
  5.         return;6 u  T! q7 B. F% K
  6.     }) x1 n; \# V- M

  7. - j* b% d9 m6 g. b; c
  8.     if (node -> val == target) {% Q* Z: _& V6 l* I  w
  9.         smalltree = node -> left;
      v/ a, t7 V2 I! |/ ^) f
  10.         largetree = node -> right;7 f& H  i7 L4 ?/ R2 V
  11.         return;
    ( r" h: D$ ~3 W' |
  12.     }( U# L4 @# L, H7 _# T
  13.    + a8 P4 A4 l' A# M. O" p( ?4 n
  14.     if (node -> val > target) {
    6 M0 G8 Y# |9 S' O" I5 a
  15.         largetree = node;# @' `; g) \3 [! w6 k1 J
  16.         Node* leftsmall, leftlarge;
    + s; B3 k- b/ e1 p2 h
  17.         splitTree(node -> left, target, leftsmall, leftlarge);
    + T7 J/ b" z# O; W9 |5 J& j, F" H
  18.         node -> left = leftlarge;
    * \  ]6 D, O) t& f5 x$ P2 _
  19.         smalltree = leftsmall' k% V! A( L, ]1 P! X) N, Z
  20.     } else {
    + T% a7 b7 [! k7 ~& p9 R
  21.         smalltree = node;6 L" g. X2 Q  Z' f: ]
  22.         Node* rightsmall, rightlarge;
    * h) {2 _! o8 j0 J4 `3 U* t
  23.         splitTree(node -> right, target, rightsmall, rightlarge);) w5 o8 o0 Q3 {5 T. V* Q
  24.         node -> right = rightsmall;
    3 r. [4 P( P* i" \7 r" l7 i$ }4 R
  25.         largetree = rightlarge;: x; H1 S. c7 m; z$ r  r( f1 b8 d
  26. }
复制代码
! M& {$ W, _7 t7 M8 a  o, J) `
补充内容 (1-27-2015 01:54 AM):
" K3 |* G  c& O3 i, J8到12行等于的部分应该去掉。20行开始的else这段来处理相等的情况
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表